<script type="text/javascript" src="demo.js" defer = "defer"></script>
<!-- IE方法 可以将JS代码写在标签内部,等到DOM树生成完之(页面解析完毕)时,才会执行 -->
<script type="text/javascript" src="demo.js" async="async"></script>
<!-- W3C标准 加载完后就立即执行 js代码不能写在里面,加载外部脚本 -->
常用方法是,当需要加载某JS文件时,创建一个script标签,将JS文件的路径传入,同时还可以传入需要调用的某个函数,之后将创建的js标签添加到DOM中,JS文件才会执行。
封装一个异步加载函数,兼容浏览器
// 异步加载
function loadScript(url,callback){
var script = document.createElement('script');
script.type = "text/javascript";
if(script.readyState) {//IE
script.onreadystatechange = function(){
if(script.readyState == 'complete' || script.readyState == 'loaded'){
callback();//可以传入字符串 使用eval()解析
}
}
}else {
script.onload = function(){
callback();
}
}
script.src = url;//直接传入函数的方式写在后面,因为当距离较近时 ie的状态不一定能够检测到
document.head.appendChild(script);//将script标签添加到document才能执行
}