一個頁面中多個window.onload = function(){}衝突問題解決思路

好比在一個頁面中有兩個JavaScript 分別都用到了window.onload
一個是:window.onload=function(a){...},另外一個是:window.onload=function(b){...}這樣就形成了一個JavaScript 運行不了(通常是前一個)。

寫成這樣就能夠了javascript

window.onload=function(){function(a);function(b);} 



也就是集中window.onload一次。

還有一種方法,舉個例子java

複製代碼
<script type="text/javascript">    
function $(obj){return document.getElementById(obj);}
window.onload=function(){
alert("加載完成");
onload2();
onload3();
}
function onload2(){
$("aa").onclick=function dd(){alert("haha")};
}
function onload3(){
alert("加載完成");
}</script>
<button id="aa">試試</button>
複製代碼

PS:window.onload = function(){}的做用?

這是匿名函數的寫法,就至關於window得onload事件調用了一個方法,可是這個方法是匿名的(由於沒有其餘地方會調用,因此不必給一個名字)
若是要以常規的寫法,就是定義一個函數好比bbb();
function bbb()
{ aaa();}
再window.onload = bbb();
這樣比較冗長函數

 

見過書上有這樣寫個函數: 
function addLoadEvent(func){ 
    var oldonload=window.onload; 
    if(typeof window.onload!='function'){ 
        window.onload=func; 
    }else{ 
        window.onload=function(){ 
            oldonload(); 
            func(); 
        } 
    } 


添加要加載執行的事件: 
addLoadEvent(aaa); 
addLoadEvent(bbb);spa

相關文章
相關標籤/搜索