js 判断脚本加载完毕的代码

 更新时间:2011年07月13日 16:37:46   作者:  
记录一段代码,用来判断脚本是否加载完毕。
复制代码 代码如下:

if(this.isIE) {
js.onreadystatechange=function(){if(js.readyState=="loaded" || js.readyState=="complete") callback();}
}else{js.onload=function(){callback();}}
js.onerror=function(){alert('Not Found (404): '+src)}//chrome


JS判断脚本是否加载完成

在“按需加载”的需求中,我们经常会判断当脚本加载完成时,返回一个回调函数,那如何去判断脚本的加载完成呢?
我们可以对加载的 JS 对象使用 onload 来判断(js.onload),此方法 Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持,但 IE6、IE7 却不支持。曲线救国 —— IE6、IE7 我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况(一般为 loading 、loaded、interactive、complete),当返回状态为 loaded 或 complete 时,则表示加载完成,返回回调函数。
对于 readyState 状态需要一个补充说明:
在 interactive 状态下,用户可以参与互动。
Opera 其实也支持 js.onreadystatechange,但他的状态和 IE 的有很大差别。
具体实现代码如下:
复制代码 代码如下:

function include_js(file) {
var _doc = document.getElementsByTagName('head')[0];
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', file);
_doc.appendChild(js);
if (!/*@cc_on!@*/0) { //if not IE
//Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload
js.onload = function () {
alert('Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload');
}
} else {
//IE6、IE7 support js.onreadystatechange
js.onreadystatechange = function () {
if (js.readyState == 'loaded' || js.readyState == 'complete') {
alert('IE6、IE7 support js.onreadystatechange');
}
}
}
return false;
}
//execution function
include_js('https://www.jb51.net/jslib//jquery/jquery.js');

相关文章

  • Javascript表单特效之十大常用原理性样例代码大总结

    Javascript表单特效之十大常用原理性样例代码大总结

    开头说这个常用原理性样例,大家可能不太清楚,这篇文章主要是针对实际开发中常用的一些代码分析,主要是针对表单处理方法的一些资料,推荐大家收藏
    2016-07-07
  • 用innerhtml提高页面打开速度的方法

    用innerhtml提高页面打开速度的方法

    这篇文章介绍了用innerhtml提高页面打开速度的方法,有需要的朋友可以参考一下
    2013-08-08
  • js 得到文件后缀(通过正则实现)

    js 得到文件后缀(通过正则实现)

    使用js获取文件的后缀,有个不错的正则,大家可以借用下,具体如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-07-07
  • 浅谈tudou土豆网首页图片延迟加载的效果

    浅谈tudou土豆网首页图片延迟加载的效果

    经常上tudou网,发现tudou首页加载图片的功能很有意思,tudou首页从"娱乐"这个板块往下的所有视频的缩略图并不是在页面打开后就加载的,而是当用户拖动滚动条到了"娱乐"这个板块,才开始加载图片的。
    2010-06-06
  • 实现图片预加载的三大方法及优缺点分析

    实现图片预加载的三大方法及优缺点分析

    本文介绍了实现图片预加载的三大方法(CSS/JAVASCRIPT/AJAX)以及这三种方法的优缺点分析,是篇非常值得推荐的文章,小伙伴们可要仔细研究下。
    2014-11-11
  • 微信小程序开发之map地图组件定位并手动修改位置偏差

    微信小程序开发之map地图组件定位并手动修改位置偏差

    这篇文章主要介绍了微信小程序开发之map地图组件,定位,并手动修改位置偏差,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • js开发一个类似ChatGPT的AI应用助手

    js开发一个类似ChatGPT的AI应用助手

    一位创业朋友想做一个垂直领域的AI助手,经过一个月的开发迭代,我们成功上线了第一个版本,这篇文章分享了开发一个类似ChatGPT的应用的过程,包括技术选型、架构设计和实战经验,实现了流式响应、上下文记忆系统和优化提示词,应用得到了用户的高度评价
    2024-12-12
  • JavaScript数组reduce()方法的语法与实例解析

    JavaScript数组reduce()方法的语法与实例解析

    js函数中有三个在特定场合很好用的函数:reduce(),map(),filter(),这篇文章主要给大家介绍了关于JavaScript数组reduce()方法的相关资料,需要的朋友可以参考下
    2021-07-07
  • javascript动态加载二

    javascript动态加载二

    经过一番思考,到底怎么解决导包而且是异步的方式,最后得出一个解决方案。先来看一下采用这个方案后的编程方式
    2012-08-08
  • bootstrap table合并行数据并居中对齐效果

    bootstrap table合并行数据并居中对齐效果

    这篇文章主要为大家详细介绍了bootstrap table合并行数据并居中对齐效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10

最新评论