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


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 相关文章推荐
使用prototype.js进行异步操作
Feb 07 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
Dec 28 Javascript
jquery索引在使用中的一些困惑
Oct 24 Javascript
JS控制图片等比例缩放的示例代码
Dec 24 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
Jan 28 Javascript
jquery实现通用的内容渐显Tab选项卡效果
Sep 07 Javascript
详谈JS中实现种子随机数及作用
Jul 19 Javascript
10个在JavaScript开发中常遇到的BUG
Dec 18 Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 Javascript
vue初始化动画加载的实例
Sep 01 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 Javascript
layui使用form表单实现post请求页面跳转的方法
Sep 14 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读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
如何将网页表格内容导入excel
2014/02/18 Javascript
采用call方式实现js继承
2014/05/20 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
Python中用max()方法求最大值的介绍
2015/05/15 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
曼城官方网上商店:Manchester City
2019/09/10 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
上课迟到检讨书
2014/02/19 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
2014年学生工作总结
2014/11/20 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
红色革命电影观后感
2015/06/18 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
JavaScript实例 ODO List分析
2022/01/22 Javascript