今天同事遇到一个需求,就是需要动态加载的脚本按顺序依次加载执行。尝试了使用document.write(DOMContentLoaded之后不能使用该方法,且该方法不推荐使用),使用defer=“async”(部分浏览器比较古老,不支持该属性)。最后我写了一个方法,实现脚本的按顺序加载,代码如下:
function loadScript(){
var scriptArr = Array.prototype.slice.apply(arguments);
var script = document.createElement('script');
script.type = 'text/javascript';
var rest = scriptArr.slice(1);
if(rest.length > 0){
script.onload = script.onreadystatechange = function() {
if ( !this.readyState || this.readyState === "loaded" ||
this.readyState === "complete" ) {
loadScript.apply(null, rest);
// Handle memory leak in IE
script.onload = script.onreadystatechange = null;
}
};
}
script.src = scriptArr[0];
document.body.appendChild(script);
}
loadScript('1.js','2.js','3.js');
该方法兼容IE哟!!!
声明:本站所有文章,如无特殊说明或标注,均为网络收集发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。