即使两者都做同样的事情,我只是想知道使用一个在另一个上有什么特别的优势吗?
Event.observe(window, "load", function(){
//do something
});
window.onload = function(){
//do something
}
答案 0 :(得分:11)
不同之处在于window.onload
在DOM Level 0事件模型中定义,并将删除所有早期的注册事件。这是来自旧API的“原生”调用。
原型javascript框架中的Event.observe
将确定可用的最佳事件附件。门面图案。在现代浏览器中,如果Internet Explorer低于版本9,则会调用addEventListener
- attachEvent
。在旧浏览器中,将调用onload
。
很明显,Facade将选择最佳选项,例如Event.observe
用于原型,或者.load
用于jQuery。
DOM Level 2事件模型中的方法优于DOM Level 0事件模型方法,因为它们充当观察者并且不会删除先前的处理程序。
答案 1 :(得分:0)
阅读quirksmode.org的introduction into events。差异在traditional model和advanced models之间,需要一个包装器,因为M $不支持W3标准,需要进行区分。