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


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 基础学习笔记
May 29 Javascript
js或css文件后面跟参数的原因说明
Jan 09 Javascript
js下通过prototype扩展实现indexOf的代码
Dec 08 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
jquery编写日期选择器
Mar 16 Javascript
JS实现的简单表单验证功能示例
Oct 13 Javascript
JS运动特效之同时运动实现方法分析
Jan 24 Javascript
AngularJS监听ng-repeat渲染完成的方法
Mar 20 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
Aug 29 Javascript
小程序如何构建骨架屏
May 29 Javascript
用Golang运行JavaScript的实现示例
Nov 25 Javascript
JS实现盒子拖拽效果
Feb 06 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扩展imagick
2014/06/02 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
微信小程序设置滚动条过程详解
2019/07/25 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
Python数据结构之图的应用示例
2018/05/11 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
PyQt5实现登录页面
2020/05/30 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
十八大宣传标语
2014/10/09 职场文书
社团个人总结范文
2015/03/05 职场文书
借条如何写
2015/05/26 职场文书
学生会招新宣传语
2015/07/13 职场文书
2015年暑假生活总结
2015/07/13 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python