通常我們需要在打開頁面時加載腳本,這些腳本必須在頁面加載完畢后才可以執行,因為這時候DOM才完整,可以利用window.onload確保這一點,如:
window.onload=firstFunction;
這腳本的意思是在頁面完畢后執行firstFunction函數,但當有很多個函數需要在頁面加載時執行呢?可能有人說可以這樣:
window.onload=firstFunction;
window.onload=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);
......