window.onload=firstFunction
window.onload=secondFunction
secondFunction函數將取代firstFunction。你可能會想:每個事件處理函數只能綁定一條指令。
有一種辦法可以讓我避過這一難題:可以先創建一個匿名函數來容納這兩個函數,然後把這個匿名函數綁定到onload事件上,如下所示:
window.onload=function(){
firstFunction();
secondFunction();
}
它確實能很好的工作--在需要綁定的函數不是很多的場合,這應該是最簡單的解決方案。這裏有一個彈性最佳方案:
function addLoadEvent(func){
var oldload=window.onload;
if(typeof window.onload!='function'){
window.onload=func;
}
else{
window.onload=function(){
oldonload();
func();
}
}
}
下面是addLoadEvent函數,將要完成的操作。1.把現有的window.onload事件處理函數的值存入變量oldonload
2.把在這個處理函數上還沒有綁定任何函數,就像平時那樣把新函數添加給它
3.如果在這個處理函數上已經綁定了一些函數,就把新函數追加到現有指令的末尾。
這就把那些在頁面加載完畢時執行的函數創建爲一個隊列。如果想把剛纔那兩個函數添加到這個隊列裏去,只需寫出以下代碼就行了:
addLoadEvent(firstFunction);
addLoadEvent(secondFunction);
這個函數非常實用,尤其是在代碼變得越來越複雜的時候。無論打算在頁面加載完畢時執行多少個函數,只要多寫一條語句就可以安排好一切了