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


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 相关文章推荐
js查找父节点的简单方法
Jun 28 Javascript
javascript处理table表格的代码
Dec 06 Javascript
js实现登陆遮罩效果的方法
Jul 28 Javascript
javascript常用函数(1)
Nov 04 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
JS装饰器函数用法总结
Apr 21 Javascript
JavaScript循环遍历你会用哪些之小结篇
Sep 28 Javascript
vue-cli系列之vue-cli-service整体架构浅析
Jan 14 Javascript
微信公众号开发之微信支付代码记录的实现
Oct 16 Javascript
JavaScript中遍历的十种方法总结
Dec 15 Javascript
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 和 MySQL 基础教程(二)
2006/10/09 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
javascript中new关键字详解
2015/12/14 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
理解Python中的With语句
2015/02/02 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
汽车专业毕业生推荐信
2013/11/12 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
党员目标管理责任书
2014/07/25 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
医生个人年终总结
2015/02/28 职场文书
护理专业自荐信范文
2015/03/06 职场文书
毕业证明模板
2015/06/19 职场文书
运动会宣传稿50字
2015/07/23 职场文书