2015-07-11 40 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是一个回调,它将在警报之后调用。