JavaScript

Page 98

3.8.2 事件捕获 NN4 中没有事件上溯的概念,与此功能相类似的是事件捕获。事件捕获使 window、 document、layer 对象能捕获窗口、文档和层中低层次对象的事件。如 document 对象能捕获 发生在文档页面中的事件如鼠标单击某文本段等,并将此事件交给该层的事件处理器处理。 事件捕获对于处理事件或者在更高的层次上定义事件处理器来取代低层次的多个事件处理 器是非常有用的,典型的如表单的提交等。 NN4 中的对象提供 captureEvents()方法实现事件捕获,如下列语句实现捕获 layer 中鼠 标双击事件功能: layer.captureEvents(Event.DBCLICK);

其中 Event.DBCLICK 参数为 NN4(及 NN4 以上版本)特有的关键字常量,其指明事 件的类型,同时,NN4 给出了几个常用的辅助键关键字如代表 Shift 按键的 SHIFT_MASK 等。表 3.7 列出了 NN4 中常见的关键字常量: 表 3.7 NN4 中常见的关键字常量 类型 事件型

按键型

关键字 ABORT DBCLICK KEYDOWN MOUSEDOWN MOUSEOVER SELECT ALT_MASK

BLUR DRAGDROP KEYPRESS MOUSEMOVE MOVE SUBMIT CONTROL_MASK

CHANGE ERROR KEYUP MOUSEUP RESET UNLOAD META_MASK

CLICK FOCUS LOAD MOUSEOUT RESIZE SHIFT_MASK

要识别特定的事件类型,可通过 Event.Name 的形式调用,Name 为上表中的关键字。 考察如下捕获辅助键是否按下事件的代码(仅适用于 NN4) : //源程序 3.13 <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Sample Page!</title> <script language="JavaScript" type="text/javascript"> <!-//设置事件处理器 function MyHandler(MyEvent) { var msg=""; msg+="\n 键盘辅助键识别结果 : \n\n"; if(MyEvent.modifiers&Event.ALT_MASK) msg+=" 事件触发时按住了 ALT 键!\n"; if(MyEvent.modifiers&Event.CONTROL_MASK) msg+=" 事件触发时按住了 CTRL 键!\n"; if(MyEvent.modifiers&Event.META_MASK) msg+=" 事件触发时按住了 Command 键!\n"; if(MyEvent.modifiers&Event.SHIFT_MASK) msg+=" 事件触发时按住了 SHIFT 键!\n"; alert(msg); } -->


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.