2014-03-05 44 views
1

我遇到了問題,無法弄清楚,如果有人能幫助我,我會很高興。所以基本上我試圖做的是將多個window.onload事件放在一個啓動我的腳本的獨立文件中。爲了得到明確我的意思是她我的情況:在單獨的文件中使用多個window.onload事件

比方說,我得到了這些文件:

的index.html

<html> 
    <head> 
     <link rel="stylesheet" href="style.css" type="text/css"> 
     <script type="text/javascript" src="kalkevent.js"></script> 
     <script type="text/javascript" src="reckevent.js"></script> 
     <script type="text/javascript" src="winonload.js"></script> 
    </head> 
    <body> 
     <div id="topColumn"> 
      ... 
     </div> 
     <div id="bottomColumn"> 
      ... 
     </div> 
    </body> 
    </html> 

kalk.js

function kalkInit() { 

    Array.prototype.slice.call(document.forms[0].elements).forEach(function(element) { 
     ... 
    }); 
    }; 

reck.js

function reckInit() { 
    ... 
    }; 

所以我想loa dkalkInit和reckInit在window.onload上。這應該在一個單獨的文件中處理。我已經嘗試過是:

winonload.js

function addLoadEvent(func) { 
    var oldonload = window.onload; 
    if (typeof window.onload != 'function') { 
    window.onload = func; 
    } else { 
    window.onload = function() { 
     if (oldonload) { 
     oldonload(); 
     } 
     func(); 
    }; 
    } 
    }; 
    addLoadEvent(kalkInit); 
    addLoadEvent(reckInit); 

但它不工作。所以我的問題是,如果有可能我想做或不做。如果有人可以幫我解決問題嗎? :)

+0

你嘗試window.addEventListner ('onload',func);而不是window.onload = func? – ucdream

回答

1

你可以考慮使用jQuery .. 在你winonload.js你只需要:

$(window).on("load", kalkInit); 
$(window).on("load", reckInit); 
+0

那麼我絕對沒有在jQuery的知識。我嘗試了你的方法,但是我得到這個錯誤:Uncaught ReferenceError:$未定義 – ardox

+0

你必須首先加載jQuery ...在你的html頁面的每個腳本標籤之前添加以下代碼:'' – CodeCarvings

+0

好的,謝謝,這是訣竅!真的很感激它。 – ardox

0

也許你打電話給你的onloadfunction:

<body onload="addLoadEvent();"> 
+0

抱歉,仍然無法使用。 – ardox

相關問題