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


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 相关文章推荐
JavaScript获取flash对象与网上的有所不同
Apr 21 Javascript
javascript学习笔记(四)function函数部分
Sep 30 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
微信小程序中显示html格式内容的方法
Apr 25 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
Vue2.0父子组件传递函数的教程详解
Oct 16 Javascript
原生js实现仿window10系统日历效果的实例
Oct 31 Javascript
javascript中new Array()和var arr=[]用法区别
Dec 01 Javascript
js中getter和setter用法实例分析
Aug 14 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
Sep 11 Javascript
Vue组件简易模拟实现购物车
Dec 21 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 mysql数据库操作类
2008/06/04 PHP
又一个php 分页类实现代码
2009/12/03 PHP
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
javascript中的原型链深入理解
2014/02/24 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
原生js实现购物车
2020/09/23 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
python能自学吗
2020/06/18 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
Django多个app urls配置代码实例
2020/11/26 Python
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
土木工程专业个人求职信
2013/12/30 职场文书
师范学院教师自荐书
2014/01/31 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
个人作风建设总结
2014/10/23 职场文书
医生辞职信范文
2015/03/02 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
JS高级程序设计之class继承重点详解
2022/07/07 Javascript