在一個頁面中有兩個JavaScript 分別都用到了window.onload
一個是:window.onload=func1,另一個是:window.onload=func2 這樣就造成了一個JavaScript 運行不了。
方案一:
window.onload=function(){func1();func2();}
方案二:
用window.attachEvent和 window.addEventListener來解決問題了
window.addEventListener("load",調用函數名,false);//對於FireFox window.attachEvent("onload",調用函數名)//對於IE
方案三
function addLoadEvent(func){ var oldonload = window.onload; //把現在有window.onload事件處理函數的值存入變量oldonload。 if(typeof window.onload != 'function'){ //如果這個處理函數還沒有綁定任何函數,就像平時那樣把新函數添加給它 window.onload = func; }else{ //如果在這個處理函數上已經綁定了一些函數。就把新函數追加到現有指令的末尾 window.onload = function(){ oldonload(); func(); } } } addLoadEvent(num1); addLoadEvent(num2);
如果有人接下來的js寫了一個加載事件:
window.onload = function(){ console.log('最后再來個頁面加載函數')}
結果妥妥的被覆蓋了,只會執行最后一個window.load的內容,因此方案三不可取
推薦使用現代瀏覽器事件綁定 方案二。