当前位置: 代码迷 >> Web前端 >> window.attachEvent 跟addEventListener
  详细解决方案

window.attachEvent 跟addEventListener

热度:496   发布时间:2012-08-25 10:06:20.0
window.attachEvent 和addEventListener
以前写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");

}
  相关解决方案