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();
}