IE和标准DOM的事件模型

本文详细介绍了不同浏览器内核下的事件传播模型,包括IE内核的事件冒泡及DOM标准的事件捕获与冒泡过程,并对比了在W3C标准与IE下如何阻止浏览器的默认行为和冒泡事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)事件传播和事件冒泡

IE内核的浏览器事件模型是冒泡型事件,也就是说,在IE内核下,时间句柄的出发顺序是从ChildNode到ParentNode。

<div id="ancestor">
	<button id="child">
		open the console and click me
	</button>
</div>

以上的HTML代码在IE内核下IE的事件是这样传播的:

Button #child

div #ancestor

Body

Document

内核是没有事件捕获过程的。


Dom标准的浏览器事件是这样传播的

Window

Document

Body

div #ancestor

Button #child


捕获事件

div#ancestor

Body

Document

Window

DOM标准的浏览器中多了一个事件捕获过程,也就是说,当开发者在一个元素上注册了事件后,这个事件的相应顺序是从window(顶层)开始一级一级向下传播,然后到了该元素后事件捕获过程结束,事件开始冒泡,一级一级向父元素冒泡。

DOM标准的浏览器事件是通过addEventListener方法注册的,而IE内核的浏览器则是通过attachEvent方法注册的。

(2)阻止浏览器默认行为

当我们要阻止浏览器中某个DOM元素的默认行为时,在W3C标准里调用e.preventDefault(),而在IE下则是通过设置window.event.returnValue=false来实现

(3)阻止冒泡事件

在W3C标准里调用e.stopPropagation(),而在IE下通过设置window.event.cancelBubble=true来实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值