(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来实现