2015-07-11 44 views
0

我動態加載我的JavaScript文件中的頁面:HTML:在動態Java腳本完全加載

<html> 

<head> 
    <script type="text/javascript"> 
     window.onload = function() { 
      var script1 = document.createElement('script'), 
       script2 = document.createElement('script'), 
       script3 = document.createElement('script'); 

      script1.type = 'text/javascript'; 
      script1.src = 'myScript1.js'; 
      script2.type = 'text/javascript'; 
      script2.src = 'myScript2.js'; 
      script3.type = 'text/javascript'; 
      script3.src = 'myScript3.js'; 

      document.body.appendChild(script1); 
      document.body.appendChild(script2); 
      document.body.appendChild(script3); 
     } 
    </script> 
</head> 

<body> 

</body> 
</html> 

我需要知道什麼時候這些腳本完全加載。有沒有任何解決方法或代碼片段來做到這一點?

+0

http://stackoverflow.com/questions/3768768/loading-javascript-dynamically-and-how-to-check-if-the-script-exists –

+0

@ Magicprog.fr,不,它不是重複的。你提出的問題是要求JavaScript的存在,但加載完成。 –

回答

1

以前 document.body.appendChild

scrimpt1.addEventListener('load', function() { console.log('loaded'); }); 

顯然,你會想要做「一些有用的東西」,而不是簡單的console.log我展示

但是......的並不總是realiable

試試這個

var numScripts; 
function scriptLoaded() { 
    numScripts --; 
    if(numScripts == 0) { 
     console.log('huzzah all scripts loaded'); 
    } 
} 

那麼,你在每個腳本結束代碼

window.onload = function() { 
     var script1 = document.createElement('script'), 
      script2 = document.createElement('script'), 
      script3 = document.createElement('script'); 
     numScripts = 3; 
     script1.type = 'text/javascript'; 
     script1.src = 'myScript1.js'; 
     script2.type = 'text/javascript'; 
     script2.src = 'myScript2.js'; 
     script3.type = 'text/javascript'; 
     script3.src = 'myScript3.js'; 

     document.body.appendChild(script1); 
     document.body.appendChild(script2); 
     document.body.appendChild(script3); 
    } 

,放像

if(windows.scriptLoaded) { 
    scriptLoaded(); 
} 
+0

謝謝你的回答。第二種解決方案更好,我認爲和第一個我更喜歡這一個:http://stackoverflow.com/a/3768844/3682369 –

0

使用回調

function greetFinished() { 
    alert("Do stuff finished"); 
} 

​function greet (greeting, callback) { 
    alert(greeting) 
    callback (options); 
} 

greet("Hello",greetFinished); 

greetFinished將被稱爲greet函數裏面greetFinished是一個回調,它將在警報之後調用。