把myfunction函數綁定到這個事件上:
[javascript] view plain copywindow.onload = myfunction();一個函數我們可以利用上面的解決,那兩個、三個甚至更多呢?怎么解決??
假如我們有firstFunction和secondFunction兩個函數,是不是就是下面這樣寫呢:
[Javascript] view plain copywindow.onload = firstFunction; window.onload = secondFunction;但是每個處理函數只能綁定一條指令。所以上面的不行。因為secondFunction函數將會取代firstFunction函數。
有一種辦法可以幫助我們解決上面問題:即我們先創建一個匿名函數來容納這兩個函數,然后把那個匿名函數綁定到onload事件上,如下:
[javascript] view plain copywindow.onload = function(){ firstFunction(); secondFunction(); }這確實是一個好的、簡答的方法。
但是其實還存在一個最佳的解決方案——不管你打算在頁面加載完畢后要執行多少個函數,利用該函數都可以輕松的實現。
該函數名為addLoadEvent。該函數僅一個參數:該參數指定了你打算在頁面加載完畢后需要執行的函數的函數名。
addLoadEvent()函數代碼如下:
[javascript] view plain copyfunction addLoadEvent(func){ var oldonLoad = window.onload; if(typeof window.onload!='function'){ window.onload = func; } else{ window.onload = function(){ oldonload(); func(); } } }addLoadEvent函數主要是完成如下的操作:
1、把現有的window.onload事件處理函數的值存入到oldonload中。
2、如果在這個處理函數上還沒有綁定任何函數,就將該函數添加給它。
3、如果在這個處理函數上已經綁定了一些函數,就把該函數追加到現有指定的末尾。
通過addLoadEvent函數,只需要調用該函數就可以進行綁定了。
[javascript] view plain copyaddLoadEvent(firestFunction); addLoadEvent(secondFunction);所以這個函數非常有用,尤其當代碼變得很復雜的時候。無論你打算在頁面加載完畢時執行多少個函數,只需要多寫幾條這樣的語句就可以解決了。方便、實用。
新聞熱點
疑難解答