JavaScript IE4 中的Event 对象 - 事件捕获

NN4 中没有事件上溯的概念,与此功能相类似的是事件捕获。事件捕获使window、document、layer 对象能捕获窗口、文档和层中低层次对象的事件。

如document 对象能捕获发生在文档页面中的事件如鼠标单击某文本段等,并将此事件交给该层的事件处理器处理。

事件捕获对于处理事件或者在更高的层次上定义事件处理器来取代低层次的多个事件处理器是非常有用的,典型的如表单的提交等。

NN4 中的对象提供captureEvents()方法实现事件捕获,如下列语句实现捕获layer 中鼠标双击事件功能:layer.captureEvents(Event.DBCLICK);其中Event.DBCLICK 参数为NN4(及NN4 以上版本)特有的关键字常量,其指明事件的类型,同时,NN4 给出了几个常用的辅助键关键字如代表Shift 按键的SHIFT_MASK
等。

要识别特定的事件类型,可通过Event.Name 的形式调用,Name 为上表中的关键字。

考察如下捕获辅助键是否按下事件的代码(仅适用于NN4):[code]<! DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
http://www.w3.org/TR/REC-html140/strict.dtd”>

Sample Page!

按住ALT\CTRL\SHIFT 然后点击页面,返回识别结果! [/code]程序运行后,在文档任意地方单击鼠标,如果单击的同时按住了Shift 和Ctrl 键,则弹出警告框如图所示。

关键语句:document.captureEvents(Event.MOUSEDOWN); document.onmousedown=MyHandler;第一句中文档对象捕获MouseDown 事件,第二句将MouseDown 事件连接到其对应的事件处理器即MyHandler()函数上面。

如果需要捕捉多个事件,各事件之间要用管道符“|”隔开。如捕获文档中所有的Click 和DbClick 事件可使用如下语句:document.captureEvents(Event.CLICK|Event.DBCLICK);