haizlin/fe-interview

[js] 第312天 W3C的事件处理和IE的事件处理有哪些区别?

Opened this issue · 2 comments

第312天 W3C的事件处理和IE的事件处理有哪些区别?

我也要出题

  • 绑定事件 W3C addEventListener ;IE attachEvent
  • 移除事件 W3c removeEventListner;IE detachEvent
  • 阻止默认事件 W3C e.preventDefault; IE window.event.returnValue = false
  • 阻止事件传播 W3C e.stopPropagation; IE winow.event.cancelBuble = true
  • 参考文章

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 的事件处理方式。