动态加载js脚本
动态加载js脚本
一、动态引入js文件
var flag = true;
if(flag){
loadScript('browserdetect.js'); // 调用函数,引入路径;
}
function loadScript(url){
var script = document.createElement('script'); // 创建script标签;
script.type = 'text/javascript'; // 设置type属性;
script.src = url; // 引入url;
document.getElementsByTagName('head')[0].appendChild(script); // 将script引入<head>中;
}
二、动态改变已有script的src属性
<head>
<title></title>
<script type="text/javascript" id="yy" src=""></script>
<script type="text/javascript">
yy.src = "package.js";
</script>
</head>
三、动态执行js代码
var script = document.createElement('script');
script.type = 'text/javascript';
var text = document.createTextNode("alert('Lee')"); // 设置script标签内容;IE会报错;
script.appendChild(text);
document.getElementsByTagName('head')[0].appendChild(script);
// IE浏览器认为script是特殊元素,不能再访问子节点;
// 为了兼容,可以使用text属性来代替;
function loadScriptString(code){
var script = document.createElement("script");
script.type = "text/javascript";
try{
// IE浏览器认为script是特殊元素,不能再访问子节点;报错;
script.appendChild(document.createTextNode(code)); // W3C方式;
}catch(ex){
script.text = code; // IE方式;
}
document.body.appendChild(script);
}
// 调用;
loadScriptString("function sayHi(){alert('hi')}");