我正在加載一個包含函數的Javascript文件,我想要調用它。這是不可能的,因爲在「啓動」加載和實際調用函數之間,JS尚未加載。當然,我可以做類似setTimeout('functionCall();',5000);
的東西,但我不認爲這是一種非常有效的方法,而且對我來說看起來真的很不穩定。這就是爲什麼我想知道是否有更好的方法來做到這一點。什麼是等待動態加載的Javascript文件完成加載的有效方法?
這是我正在使用的代碼。有問題的函數被稱爲controllerStart
。如果我在此註釋掉最後一行,並將其輸入到Javascript終端(例如Chrome開發人員工具),則一切正常。
function loadController(name){
clearAll();
scriptContainer.innerHTML = '';
var scriptElement = document.createElement('script');
scriptElement.setAttribute('src','controllers/' + name + '.js');
scriptElement.setAttribute('type','text/javascript');
scriptContainer.appendChild(scriptElement);
controllerStart();// <-- Doesn't work from here, but works on a terminal
}
感謝您的關注!
感謝您的快速響應。我試過這個代碼,它給了我相同的確切的錯誤。 – Hassan 2012-04-24 22:17:31
沒問題 - 我犯了一個錯誤,onload是你想要的,而不是「加載」 – 2012-04-24 22:22:30
你可以編輯它爲'scriptElement.onload = new function(){controllerStart();};',因爲那是行得通的。 – Hassan 2012-04-24 22:30:06