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


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跑马灯代码(自写)
Apr 17 Javascript
jquery ui对话框实例代码
May 10 Javascript
jquery实现简单文字提示效果
Dec 02 Javascript
AngularJS基础 ng-cut 指令介绍及简单示例
Aug 01 Javascript
浅析javascript中的Event事件
Dec 09 Javascript
纯JS单页面赛车游戏制作代码分享
Mar 03 Javascript
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
微信小程序 自动登陆PHP源码实例(源码下载)
May 08 Javascript
Angular4学习笔记之根模块与Ng模块
Sep 09 Javascript
vue 中swiper的使用教程
May 22 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
JS 跳转页面延迟2种方法
2013/03/29 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
手机端转换rem适应
2017/04/01 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
Python pandas常用函数详解
2018/02/07 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
2014新年元旦活动策划方案
2014/02/18 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
安全环保标语
2014/06/09 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
万能检讨书
2015/01/27 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers