问答 百科手机端

动态加载JS和网站文件

2023-03-14 10:43
以下代码已测试。记录在此,做个备忘。


function LoadJs(newJS)//newJS为服务器js文件名
{
var oldjs = document.getElementById(newJS);
if(oldjs) oldjs.parentNode.removeChild(oldjs); //如要防止重复加载,则如此处理

var scriptObj = document.createElement("script");
scriptObj.src = newJS;
scriptObj.type = "text/javascript";
scriptObj.id   = newJS;
//scriptObj.async = true; //如需异步加载则去掉注释
document.getElementsByTagName("head")[0].appendChild(scriptObj);

}
 



function LoadPage(url,func) //url为任意服务器文件名
{
var xhr= new XMLHttpRequest();
xhr.open("GET", url,true); //true:异步模式,false:同步模式

//异步模式需要注册回调函数
xhr.onreadystatechange = function() { 
   if(xhr.readyState ==4 && (xhr.status==200||xhr.status==304)){ //304代表页面无修改可以使用本地缓存
        func(xhr.responseText); //自定义func函数来处理接收的内容
   }
};
xhr.send(null);

//同步模式直接返回数据
//func(xhr.responseText);
}


也可以用LoadPage来加载js,只要把func指定为eval即可。
热门