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