javascript在事件监听方面的兼容性小结
作者:
javascript 在事件监听方面的兼容性总结,注意是由于多个浏览器的不一致,导致大家在js书写时需要考虑多个浏览器的兼容性。
1,IE使用attachEvent/detachEvent方法来添加和删除事件监听器;w3c使用addEventListener/removeEventListener方法。
2,IE对其事件使用onevent的命名方式,而w3c的是event的命名方式。
3,IE事件监听器内使用的是一个全局的Event对象,而w3c是将event对象作为参数传递给监听器。
4,为了避免触发默认的事件行为,IE的做法是要求程序员设置Event对象中的returnValue属性值为false,而w3c的做法是执行preventDefault方法。
5,IE没有提供对事件捕获阶段的支持。
6,要停止事件的传递,IE的做法是设置event对象的cancelBubble为true,而w3c的做法是设置执行stopPropagation方法。
7,IE将事件监听器当做一个独立的函数来调用,而w3c中它是作为对象的方法来调用的,这表示在ie中事件监听器中的this关键字指向的不是事件发生对象而是一个没用的全局对象(window对象)。
8,IE在使用事件监听器方面存在内存泄露问题。在IE浏览器中,如果要为某个元素创建一个事件监听器,并且在监听器中使用该元素,则在用户进入其他页面之前,该监听器以及相关的DOM节点作占据的内存空间不会被释放。
2,IE对其事件使用onevent的命名方式,而w3c的是event的命名方式。
3,IE事件监听器内使用的是一个全局的Event对象,而w3c是将event对象作为参数传递给监听器。
4,为了避免触发默认的事件行为,IE的做法是要求程序员设置Event对象中的returnValue属性值为false,而w3c的做法是执行preventDefault方法。
5,IE没有提供对事件捕获阶段的支持。
6,要停止事件的传递,IE的做法是设置event对象的cancelBubble为true,而w3c的做法是设置执行stopPropagation方法。
7,IE将事件监听器当做一个独立的函数来调用,而w3c中它是作为对象的方法来调用的,这表示在ie中事件监听器中的this关键字指向的不是事件发生对象而是一个没用的全局对象(window对象)。
8,IE在使用事件监听器方面存在内存泄露问题。在IE浏览器中,如果要为某个元素创建一个事件监听器,并且在监听器中使用该元素,则在用户进入其他页面之前,该监听器以及相关的DOM节点作占据的内存空间不会被释放。
您可能感兴趣的文章:
- Javascript 的addEventListener()及attachEvent()区别分析
- window.addEventListener来解决让一个js事件执行多个函数
- JS在IE和FF下attachEvent,addEventListener学习笔记
- javascript attachEvent和addEventListener使用方法
- JavaScript使用addEventListener添加事件监听用法实例
- javascript事件监听与事件委托实例详解
- JavaScript绑定事件监听函数的通用方法
- js事件监听器用法实例详解
- js事件监听机制(事件捕获)总结
- javascript 传统事件模型构造的事件监听器实现代码
- js中addEventListener()与removeEventListener()用法案例分析