- 0
- 0
- 约3.3千字
- 约 30页
- 2026-01-19 发布于广东
- 举报
事件处理是编写动态网页的基础,网页可以对用户的操作做出响应。比如,在网页中按了一下方向键的左键,浏览器也不知道用户要做什么。那怎么办呢?于是浏览器采用了一种更为高明的方法,那就是定义许多事件,程序员可以通过向这些事件注册处理函数的办法进行相应的处理。
如刚才提到的在网页中按下方向键的左键,如果是在一款网页游戏中,那用户的意思是角色向左移动,那么网页游戏的程序员就可以对键盘事件进行注册,检查用户按下的键是否为向左的方向键,如果是则实现角色向左移动的操作。本章就对这种事件处理机制进行详细讲述。
7.1事件与传播机制
事件是浏览器响应用户操作的一种机制,对这一机制支持的一套措施称之为“事件模型”。JavaScript的事件模型并不单纯,目前使用的事件模型有两种,这两种事件模型并不完全一致,这就给大家掌握事件处理带来了一定的复杂性。
这两种事件模型分别是标准事件模型(由W3C制订)和IE事件模型,IE事件模型只有IE浏览器中使用,但却不能忽视它的存在,因为大部分计算机上运行的都是Windows操作系统,所以IE浏览器也占有巨大的市场份额,忽视它的存在无疑会带来严重的后果。
在IE事件模型还没有被标准事件模型和谐之前,还是要掌握两种事件模型。两种事件模型的不同之处在于事件对象、传播机制和事件处理上。下面分别说明这两处事件处理模型。标准模型的事件传播分为三个阶段[25]:
第一阶段称为“捕捉阶段(CapturePhase)”——是指事件发生后,从window对象沿着DOM树结构向目标节点传播。在这一阶段中,触发事件的节点的任何祖先注册了事件处理程序,都可以对该事件进行处理。
第二阶段称为“目标阶段(TargetPhase)”——此阶段发生在触发事件的节点本身,注册的事件处理程序(函数)会被执行。第三阶段称为“冒泡阶段(BubblingPhase)”——在此阶段中事件从触发节点沿着DOM树结构传回到window对象中。
标准事件模型的事件传播过程如图7-1所示。图中显示的是鼠标悬停在网面中表格的某单元格(其内容为RiverCharlie)上触发的事件的传播过程。为了巩固前面学习的DOM树结构(参见6.1节),请各位读者给出图7-1对应的HTML文档,进一步理解DOM树的结构。
图7-1标准事件模型的事件传播(图片来源W3C)
在标准事件模型中,所有事件的处理都可以在捕捉阶段进行,但并不是所有事件都可以在冒泡阶段进行处理。因为事件分为两类:输入事件和高级语义事件[25]。输入事件是由用户发起的,如鼠标单击事件;高级语义事件是由系统内部触发的事件,如网页的加载等。
高级语义事件是不支持冒泡传播的,所以在冒泡传播阶段是不能处理高级语义事件的。IE事件模型只支持冒泡形式的事件传播。所以,所有事件只能在冒泡阶段处理。事件传播机制决定了事件如何进行处理,所以请大家一定要理解这些内容。
7.2常用事件
DOMAPI提供200多个事件,还有浏览器各自提供的非标准事件,这么多事件没办法一一介绍,所以这里只介绍常用的事件。对于其他用到的事件,请参阅DOMAPI手册或相关网站。
常用事件包括鼠标事件、键盘事件、窗口事件、表单事件、拖拽事件(HTML5新增事件)、粘贴事件、打印事件、媒体事件(HTML5新增事件)、动画事件(新增的CSS3事件)、服务器发送事件和其他事件。
这里只讨论常用的鼠标事件、键盘事件、表单事件和一些其他事件,拖拽事件、媒体事件和动画事件的讨论已经超出了本书内容的范畴,请参阅HTML5和CSS3的相关书籍。常见事件如表7-1所示。
*注:所有事件请参考文献[26]。处理事件涉及到注册、取消事件处理函数——也称为事件处理器?,该部分内容将在7.4节进行介绍。?事件处理器——对于微软用户来说,此处不确切,删除下面介绍事件处理中非常重要的事件对象,它记录了事件发生时的详细信息,用于事件处理。
7.3事件对象
处理事件时需要知道事件的详细信息,这些详细信息,如事件源——即触发事件的DOM节点(或称为网页元素)或原因、事件发生鼠标的位置,或者触发事件的按键等,都记录在事件对象中。
事件对象的生成和传递在两种事件模型中是不同的:◆标准事件模型——事件对象在事件发生时生成,作为参数传递给事件处理函数。◆IE事件模型——事件对象作为Window对象的全局属性,在事件处理函数中直接访问。
7.3.1Event对象
Event对象是事件对象的基本对象,它记录了事件发生时详细的信息,通过它可以对事件进行更精细的操作。标准事件模型的Event常用属性如表7-2所示,常用方法如表7-3所示。IE事件模型的Event对象与标准Event对象略有不同,target属性在IE模型的Event对象中为srcEelement属性。
表7-3列出了
您可能关注的文档
最近下载
- KingSCADA3.7初级培训教材.pdf VIP
- OLED技术原理.ppt VIP
- 胃肠镜麻醉专家共识解读.pptx VIP
- 第23题 几何综合(压轴大题)(原卷版)-2025年中考数学冲刺复习(武汉专用).pdf VIP
- 23J012-5生态护坡(1)护坡.pdf VIP
- 2025心肺复苏指南课件(2025-AHA心肺复苏CPR和心血管急救指南-欧洲复苏委员会).pptx VIP
- 2025年中国人民公安大学教师招聘考试真题 .pdf VIP
- LCD模组制程原理.ppt VIP
- 年产10万吨丙烷脱氢制丙烯工艺设计说明书.docx VIP
- 电土施表13.3-8 排(雨)水立(干)管通球试验记录.doc VIP
原创力文档

文档评论(0)