通常我們需要在打開頁面時加載腳本,這些腳本必須在頁面加載完畢后才可以執行,因為這時候DOM才完整,可以利用window.onload確保這一點,如:
window.οnlοad=firstFunction;
這腳本的意思是在頁面完畢后執行firstFunction函數,但當有很多個函數需要在頁面加載時執行呢?可能有人說可以這樣:
window.οnlοad=firstFunction;
window.οnlοad=secondFunction;
但這樣的話只會執行secondFunction函數。
Simon Willison Blog??上提供了完美的解決方案:
?
- function?addLoadEvent(func)?{??
- ??var?oldonload?=?window.onload;??
- ??if?(typeof?window.onload?!=?'function')?{??
- ????window.onload?=?func;??
- ??}?else?{??
- ????window.onload?=?function()?{??
- ??????if?(oldonload)?{??
- ????????oldonload();??
- ??????}??
- ??????func();??
- ????}??
- ??}??
- }??
?
?
func參數就是要加載的函數名(記得只是函數名,不需要括號),有多少個函數需要在頁面Load后執行的話,就調用多少次上面那個經典函數,例如:
addLoadEvent(firstFunction);
addLoadEvent(secondFunction);
......