判断脚本加载是否完成的方法


Posted in Javascript onMay 26, 2009

我们可以对加载的 JS 对象使用 onload 来判断(js.onload),此方法 Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持,但 IE6、IE7 却不支持。曲线救国 —— IE6、IE7 我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况(一般为 loading 、loaded、interactive、complete),当返回状态为 loaded 或 complete 时,则表示加载完成,返回回调函数。

对于 readyState 状态需要一个补充说明:
1.在 interactive 状态下,用户可以参与互动。
2.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('http://img.3water.com/jslib/jquery/jquery-1.3.2.min.js);
Javascript 相关文章推荐
字符串的replace方法应用浅析
Dec 06 Javascript
利用jquery的获取JS文件中的字符串内容
Feb 14 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 Javascript
jQuery layui常用方法介绍
Jul 25 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
Bootstrap笔记—折叠实例代码
Mar 13 Javascript
vue的事件绑定与方法详解
Aug 16 Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
详解vue-loader在项目中是如何配置的
Jun 04 Javascript
Vue函数式组件的应用实例详解
Aug 30 Javascript
这样回答继承可能面试官更满意
Dec 10 Javascript
Vue多选列表组件深入详解
Mar 02 Vue.js
javascript 复杂的嵌套环境中输出单引号和双引号
May 26 #Javascript
Javascript Select操作大集合
May 26 #Javascript
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
May 25 #Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
May 25 #Javascript
jQuery 图像裁剪插件Jcrop的简单使用
May 22 #Javascript
document.compatMode介绍
May 21 #Javascript
各种常用浏览器getBoundingClientRect的解析
May 21 #Javascript
You might like
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
深入解析HTML5使用SVG图像时的viewBox属性用法
2015/09/02 HTML / CSS
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
高校毕业生登记表自我鉴定
2013/11/03 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
早读课迟到检讨书
2014/09/25 职场文书
员工工作及收入证明
2014/10/28 职场文书
感谢信的格式
2015/01/21 职场文书
行政上诉状范文
2015/05/23 职场文书
新闻通讯稿模板
2015/07/22 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang