addEventListener()和attachEvent()跨浏览器的兼容性处理 — 第13.2.5节
2016-10-29 22:57
281 查看
为了保证处理事件能在大多数浏览器下一致的运行,只需关注冒泡阶段。第一个要创建的方法是addHandler(),它的职责是视情况分别使用DOM0级方法、DOM2级方法或IE方法来添加事件。第二个方法是removeHandler()方法,用于移除添加的事件。EventUtil创建方法和用法如下:
以上封装可以实现任何浏览器的绑定事件,敲一遍你就会了!
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="btn">你可以改变世界!</div> </body> <script type="text/javascript"> var EventUtil = { addHandler : function(element,type,handler){ if(element.addEventListener){ element.addEventListener(type,handler,false); }else if(element.attachEvent){ element.attachEvent('on' + type,handler); }else{ element['on' + type] = handler; } }, removeHandler : function(element,type,handler){ if(element.removeEventListener){ element.removeEventListener(type,handler,false); }else if(element.detachEvent){ element.detachEvent('on' + type,handler); }else{ element['on' + type] = null; } } } var btn = document.getElementById('btn'); var handler = function(){ console.log('这是JavaScript高程第354页'); } EventUtil.addHandler(btn,'click',handler); </script> </html>
以上封装可以实现任何浏览器的绑定事件,敲一遍你就会了!
相关文章推荐
- js绑定事件方法:addEventListener与attachEvent的不同浏览器的兼容性写法
- js事件处理程序的运行环境(改变attachEvent内部的this指向&封装兼容性的 addEvent方法)
- js绑定事件方法:addEventListener与attachEvent的不同浏览器的兼容性写法
- 处理各种浏览器 获取事件目标的兼容性
- 利用jQuery的$.event.fix函数统一浏览器event处理
- 关于原生事情绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window疑问
- addEventListener、attachEvent、cancelBubble兼容性随笔
- window.attachEvent和window.addEventListener的区别(其实只是支持的浏览器不同)
- IE和firefox浏览器的event事件兼容性汇总
- attachEvent与addEventlistener兼容性
- javascripte Event的兼容性处理
- 用优雅的CSS(为html或body标签添加特定浏览器的class)处理兼容性,而不是hack
- 事件处理程序(addEventListener 和 attachEvent)
- IE,firefox 里对浏览器事件处理的兼容性处理
- 讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
- 关于原生事件绑定中attachEvent与addEventlistener中兼容性以及attachEvent函数中this指代window问题
- 利用jQuery的$.event.fix函数统一浏览器event处理
- Chrome 浏览器对 innerHTML 处理的兼容性的问题
- JavaScript Wheel Event - 使用JavaScript处理浏览器的鼠标滑轮事件
- 浏览器IE6、IE7、IE8、css bug兼容性处理