window.attachEvent和window.addEventListener的区别

http://red-apple.blog.163.com/blog/static/201165061201302142729391/


以前写JavaScript脚本时,事件都采用object.event = handler的方式绑定。这种方式对于Internet Explorer、Mozilla/Firefox和Opera来说很通用。但有一个问题,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执执行多个处理过程,就不好用了。

Internet Explorer从5.0开始,提供了一个attachEvent方法,使用这个方法,可以一个事件,绑定多个处理过程。但是Mozilla/Firefox并不支持这个方法,它使用另外一个方法addEventListener。它们之间有少许区别,在attachEvent方法中,事件是以"on"开头的,而addEventListener,事件不是以"on"开头,另外,addEventListener还有第三个参数,一般指定false就可以。

因此,在程序中,给一个事件指派多个处理过程的话。需要根据不同的浏览器,选择使用attachEvent和addEventListener。示例如下:

if (window.attachEvent) {

window.attachEvent("onload", foo);

} else if (window.addEventListener) {

window.addEventListener("load", foo, false);

}

function foo() {

alert("ok");

}

注释:attachEvent所绑定的多个方法的执行顺序是随机的,因此,这几个方法之间,不要有顺序依赖。另外,attachEvent和addEventListener不仅仅适用于window对象,其他的一些对象,也支持该方法


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值