加载脚本后调用javascript函数
我有一个html页面,我通过像下面的JavaScriptdynamic地附加html
<script type="text/javascript" src="/myapp/htmlCode"></script>
我想调用一个js函数,例如loadedContent(); 一旦上面的脚本添加了dynamichtml。
有人可以帮我怎么做吗?
你可以做到这一点,而不使用head.js的JavaScript。
function loadScript( url, callback ) { var script = document.createElement( "script" ) script.type = "text/javascript"; if(script.readyState) { //IE script.onreadystatechange = function() { if ( script.readyState === "loaded" || script.readyState === "complete" ) { script.onreadystatechange = null; callback(); } }; } else { //Others script.onload = function() { callback(); }; } script.src = url; document.getElementsByTagName( "head" )[0].appendChild( script ); } // call the function... loadScript(pathtoscript, function() { alert('script ready!'); });
您可以设置一个间隔计时器,一旦脚本被加载,取消计时器,并做一些事情。
var fileInterval = setInterval(function(){ if (functionInFile){ // do something clearInterval(fileInterval); // clear interval } },100); // check every 100ms
尝试这样的事情
var script = document.createElement('script'); if(script.readyState) { //IE script.onreadystatechange = function() { if ( script.readyState === "loaded" || script.readyState === "complete" ) { script.onreadystatechange = null; alert(jQuery); } }; } else{//others script.onload = function() { alert(jQuery); } } script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js" document.documentElement.appendChild(script);
实际上你可以把loadedContent()
作为你正在加载的脚本的最后一行(这就是JSONP背后的概念)
我有同样的问题…我的解决scheme(没有jQuery):
<script onload="loadedContent();" src ="/myapp/myCode.js" ></script>
看看head.js。 它会实现你所追求的,当你的文件成功加载和执行时提供callback。