Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 要捕获事件,使用addEventListener(或attachEvent)与安装新的事件处理程序有什么不同吗_Javascript - Fatal编程技术网

Javascript 要捕获事件,使用addEventListener(或attachEvent)与安装新的事件处理程序有什么不同吗

Javascript 要捕获事件,使用addEventListener(或attachEvent)与安装新的事件处理程序有什么不同吗,javascript,Javascript,目前,我希望捕获onLoad事件 我在想,他们之间有什么不同 if (window.addEventListener){ window.addEventListener('load', func1) } else { window.attachEvent('onload', func1) } 这两种方法都能如期工作。我可以知道,哪种方法更好吗?addEventListener无疑更灵活,更不容易出错,但这只是一个意见问题。你的第二个例子像地狱一样凌乱,有效,但丑陋:这件事已

目前,我希望捕获
onLoad
事件

我在想,他们之间有什么不同

if (window.addEventListener){
    window.addEventListener('load', func1)
} else {
    window.attachEvent('onload', func1)
}



这两种方法都能如期工作。我可以知道,哪种方法更好吗?

addEventListener无疑更灵活,更不容易出错,但这只是一个意见问题。你的第二个例子像地狱一样凌乱,有效,但丑陋:这件事已经做得很惨了,如果不是这样的话,那就在网上。看见最大的问题是attachEvent没有将事件目标设置为此,也没有将事件对象传递给侦听器(尽管它通常作为window.event提供,其中不支持addEventListener)。Google attachEvent(注意垃圾实现)。;-)没有理由使用
attachEvent
,除非是为了支持IE的古老版本。我们强烈建议您使用
addEventListener
而不是指定
onload
属性,因为
onload
属性可能会被其他一些代码覆盖,而使用
addEventListener
设置的侦听器将安全地保留在原位,直到它被明确删除。
var oldOnload1 = window.onload;
window.onload=function(){
    oldOnload1 && oldOnload1();
    func1();
}