为了账号安全,请及时绑定邮箱和手机立即绑定

DOM事件的跨浏览器解决

1.IE事件处理程序:IE也提供了类似DOM2级事件处理程序
attachEvent()添加事件
detachEvent()删除事件
接收相同的两个参数,事件处理程序的名称和事件处理程序的函数。去掉了布尔值,不使用第三个参数的原因:IE8以及更早的浏览器版本只支持事件冒泡!
在ie下给btn3添加事件

```btn3.attachEvent('onclick',showMes);

注意:在ie事件处理程序上,又要把on加上

```btn3.detachEvent('onclick',showMes);

支持ie事件处理程序的浏览器主要有ie和opera两个浏览器。

2.跨浏览器事件处理程序
解决浏览器兼容问题的最好方法是能力检测,有这个能力就使用这种方法,没有就使用别的方法。浏览器支持addEventListener,就使用这个方法;浏览器支持attachEvent,就使用这个方法。跨浏览器事件处理最好封装在一个对象内。

//跨浏览器事件处理程序
var eventUtil = {
//添加句柄
addHandler:function(element,type,handler){
if(element.addEventListener){element.addEventListener(type,handler,false);} // DOM2级事件处理程序
else if(element.attachEvent){element.attachEvent('on'+type,handler);} // IE事件处理程序
else{element['on'+type]=handler;} // DOM0级事件处理程序
},
//删除句柄
removeHandler:function(element,type,handler){
if(element.removeEventListener){element.removeEventListener(type,handler,false);} // DOM2级事件处理程序
else if(element.detachEvent){element.detachEvent('on'+type,handler);} // IE事件处理程序
else{element['on'+type]=null;} //DOM0级事件处理程序
}
}
eventUtil.addHandler(btn3,'click',showMessage);

3.js中所有用'.'的地方都可以使用'[]'
如:对象的点击事件

```element.onclick===element['onclick']

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消