爲了在網頁加載完後,同時執行多個函數,Simon Willison寫了function addLoadEvent(func):html
function addLoadEvent(func){ var oldOnload = window.onload; if (typeof window.onload != 'function'){ window.onload = func; } else { window.onload = function(){ oldOnload(); func(); } } }
addLoadEvent工做流程:
把現有的window.onload事件處理函數的值存入變量oldonload。
若是在這個處理函數上尚未綁定任何函數,就像平時那樣把新函數添加給它;
若是在這個處理函數已經綁定了一些函數,就把函數追回到現有指令未尾。
瀏覽器加載html內容是自上而下的(默認),而JS通常是在哪裏引入——想一想若是JS裏面包含了一些即時執行指令,
它會操做根本不存在元素節點(由於尚未加載完)會有什麼後果?結果就是出錯。
addLoadEvent能夠實現不管有多少個函數,都能讓它們同時和window.onload事件綁定。瀏覽器