window.onload
多次拨打真的发生了什么? IE在FIFO或链中是否存在多个window.onload事件?
function onLoadHandler(mMethod){
var previous = window.onload;
window.onload = function() {
if(previous) previous();
mMethod();
}
}
如果我使用window.onload = function() { /* print to console */ };
我打电话之前我onLoadHandler()
五(5)每次调用打印到控制台告诉我该叫这个。它按顺序打印到控制台。即使我写了第二个onLoadHandler2()
并再打5次。所有东西都按正确顺序打印,即按照呼叫顺序打印,包括首先调用的window.onload
事件。
我无法弄清楚这里发生了什么。它是一个FIFO堆栈?每个电话是否被放入一个堆栈,并且第一个电话是首先输出,因此按照正确的顺序打印到控制台?
它将具有FIFO的行为。基本上,代码在覆盖它之前采取了以前的任何操作,先调用它,然后调用传入的方法。你可以任意重复该模式。 'window.onload'只能有一个值,这就是为什么这个东西是必需的。 –
“需要?”那么'window.addEventListener'呢? – qxz
“window.onload的多次调用真的发生了什么” - 这是没有意义的,因为'onload'只被调用一次:通过浏览器。我想你可以自己手动调用它。 – Dai