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


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 相关文章推荐
基于jquery的跟随屏幕滚动代码
Jul 24 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
分享javascript计算时间差的示例代码
Mar 19 Javascript
jQuery基于扩展实现的倒计时效果
May 14 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
原生js实现放大镜效果
Jan 11 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
JS内部事件机制之单线程原理
Jul 02 Javascript
layui实现点击按钮给table添加一行
Aug 10 Javascript
微信小程序实现九宫格抽奖
Apr 15 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
vue+animation实现翻页动画
Jun 29 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在字符断点处截断文字的实现代码
2011/04/21 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
js实现继承的5种方式
2015/12/01 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
python删除服务器文件代码示例
2018/02/09 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python写入已存在的excel数据实例
2018/05/03 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
欧克利英国官网:Oakley英国
2019/08/24 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
参观接待方案
2014/03/17 职场文书
活动总结报告怎么写
2014/07/03 职场文书
小鞋子观后感
2015/06/05 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python