我需要调用在 jQuery 追加方法中包含的 javascript 文件中声明的函数:
var s = document.createElement("script");
s.type = "text/javascript";
s.src = scriptUrl;
jQuery("head").append(s);
setTimeout(function(){
jQuery('.divClass').banner({
duration: 2000
});
},100);
我认为加载脚本所需的时间可能比 setTimeout
中设置的给定时间长,可能会出现问题。 .
如果脚本包含在 html 中 <script>
标签,然后浏览器将等待脚本加载。但如果我将脚本包含在 jQuery append()
中,效果是一样的方法?我需要setTimeout
在这种情况下?如何计算所需时间?
最佳答案
使用JQuery的getScript方法:
$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
console.log( data ); // Data returned
console.log( textStatus ); // Success
console.log( jqxhr.status ); // 200
console.log( "Load was performed." );
});
或 native (取自 http://www.nczonline.net/blog/2009/07/28/the-best-way-to-load-external-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);
}
关于javascript - 通过 jQuery 将脚本附加到 head 时是否需要 setTimeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23539363/