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


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 相关文章推荐
AJAX 网页保留浏览器前进后退等功能
Feb 12 Javascript
js 遍历对象的属性的代码
Dec 29 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 Javascript
javascript操作数组详解
Dec 17 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
Nov 30 Javascript
JS实现的简单表单验证功能示例
Oct 13 Javascript
老生常谈JS中的继承及实现代码
Jul 06 Javascript
详解vue-router传参的两种方式
Sep 10 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 Javascript
JS实现滚动条触底加载更多
Sep 19 Javascript
利用layer实现表单完美验证的方法
Sep 26 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 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之第五天
2006/10/09 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Python如何实现文本转语音
2016/08/08 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Python3.5 Pandas模块之DataFrame用法实例分析
2019/04/23 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
Django之PopUp的具体实现方法
2019/08/31 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
C有"按引用传递"吗
2016/09/06 面试题
应聘教师自荐信
2013/10/12 职场文书
行政专员岗位职责
2014/01/02 职场文书
赔偿协议书范本
2014/04/15 职场文书
工作分析计划书
2014/04/30 职场文书
个人委托书范本
2014/09/13 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
给老师的感谢信
2015/01/20 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
机械生产实习心得体会
2016/01/22 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
使用python向MongoDB插入时间字段的操作
2021/05/18 Python