现在的位置: 首页 > 综合 > 正文

IE 11 注册事件处理程序终于回归W3C标准addEventListener

2018年01月28日 ⁄ 综合 ⁄ 共 761字 ⁄ 字号 评论关闭

以前写代码一直通过下面方式,大概区分ie和非ie内核浏览器

if (window.attachEvent){
//IE 的事件代码
}else{
//其它浏览器的事件代码
}

但是今天把ie升级到11后,发现这种判断已经失效了,刚开始还以为电脑中毒了,让我好生郁闷,上网一查,才发现,ie11已经摒弃了attachEvent,而改用addEventListener

给个官网链接http://msdn.microsoft.com/zh-cn/library/ie/bg182625(v=vs.85).aspx

看一下addEventListener的参数说明

object.addEventListener(type, listener, useCapture)

参数type:String类型,指定事件名,如"onclick","onload"等;

参数listener:实现了 EventListener 接口或者是 JavaScript 中的函数;

参数useCapture:bool类型,当为false时为冒泡获取,当为true时为捕获获取,一般为false。


举个例子:obj.addEventListener("onclick",function(){alert("123")},false);//方式一

或写成obj.addEventListener("onclick",myfun(),false);//方式二

function myfun(){alert("123")}


几处说明:

1、对于事件名到底是加on还是不加on,我的测试结果是ie11、opera、google、firefox 加不加on都可以。

2、对于方式二中函数名到底写成myfun()还是myfun,我的测试结果是google、ie11、opera都需要加(),firefox
不加()。


抱歉!评论已关闭.