前言
有些函數,必須在網頁加載完畢后執行。比如:涉及DOM操作的。
網頁加載完畢時會觸發一個onload事件,將函數綁定到這個事件上即可。
window.onload = myFunction;
問題來了:如果需要同時綁定多個事件,該如何處理呢?有兩種解決方法
方案一
創建一個匿名函數,來容納需要綁定的多個事件,再講這個匿名函數綁定到onload事件上
1 window.onload = function(){ 2 firstFunction(); 3 secondFunction(); 4 ...... 5 }
方案二
由Simon Willsion編寫的addLoadEvent函數:
1 function addEventLoad(func){ 2 var oldOnload = window.onload; 3 if(typeof window.onload != 'function'){ 4 window.onload = func; 5 }else{ 6 window.onload = function(){ 7 oldOnload(); 8 func(); 9 } 10 }
12 }
- 將現有的window.onload事件處理函數的值存入變量oldOnload
- 如果這個處理函數上還沒有綁定函數,則和那樣把新函數綁定給它。
- 如果已經綁定了函數,則把新的函數追加到指令的末尾。
調用方法:
addEventLoad(firstFuction);
addEventLoad(secondFuction);
