[js] 第312天 W3C的事件处理和IE的事件处理有哪些区别?
Opened this issue · 2 comments
haizhilin2013 commented
第312天 W3C的事件处理和IE的事件处理有哪些区别?
longhui520 commented
- 绑定事件 W3C addEventListener ;IE attachEvent
- 移除事件 W3c removeEventListner;IE detachEvent
- 阻止默认事件 W3C e.preventDefault; IE window.event.returnValue = false
- 阻止事件传播 W3C e.stopPropagation; IE winow.event.cancelBuble = true
- 参考文章
Wyt-GitHub8000 commented
W3C 和 IE 的事件处理有以下区别:
事件模型不同:W3C 使用的是事件冒泡模型,IE 使用的是事件捕获和事件冒泡两种模型。
事件对象不同:W3C 的事件对象在触发事件时由浏览器创建,而 IE 的事件对象是全局变量 event。
事件属性不同:W3C 的事件对象包含更多的属性,例如 target、currentTarget 等,而 IE 的事件对象只包含常用的属性,例如 type、srcElement 等。
事件监听器不同:W3C 使用 addEventListener() 和 removeEventListener() 方法添加和移除事件监听器,IE 使用 attachEvent() 和 detachEvent() 方法添加和移除事件监听器。
事件命名不同:W3C 定义了一些新的事件(例如 DOMContentLoaded)、以及一些不同于 IE 的事件(例如 mousewheel),因此需要注意事件的名称和兼容性问题。
需要注意的是,虽然 W3C 和 IE 的事件处理存在差异,但现代浏览器已经对这些差异进行了整合,支持使用统一的 addEventListener() 和 removeEventListener() 方法来添加和移除事件监听器,因此在实际开发中,可以优先考虑使用 W3C 的事件处理方式。