需要去动态加载script脚本,一般做法如下:
var scriptElement=document.createElement("script");
scriptElement.src="js/test.js";
(document.getElementsByTagName("head")[0] || document.body).appendChild(scriptElement);
如果我们需要考虑script脚本的执行顺序,或者script脚本加载完成后去执行某个回调函数,非ie浏览器有一个onload和onerror事件,可以实现类似功能,对于ie浏览器,则是 onreadystatechange事件,ie高版本的是onload何onreadystatechange都支持,所以最后的实现方式就是
function callback(){
alert("callback");
}
function loadScript(path,callback){
var scriptElement=document.createElement("script");
if("onload" in scriptElement){
scriptElement.οnlοad=function(e){
callback();
};
}else if("onreadystatechange" in scriptElement){
scriptElement.onreadystatechange=function(){
if(scriptElement.readyState==="loaded"){
callback();
}
};
}
scriptElement.src=path;
(document.getElementsByTagName("head")[0] || document.body).appendChild(scriptElement);
}
loadScript("js/test.js",callback);