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


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 插件仿百度搜索框智能提示(带Value值)
Jan 22 Javascript
解释&&和||在javascript中的另类用法
Jul 28 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
May 13 Javascript
深入理解JavaScript单体内置对象
Jun 06 Javascript
基于d3.js实现实时刷新的折线图
Aug 03 Javascript
JavaScript中函数声明与函数表达式的区别详解
Aug 18 Javascript
js制作可以延时消失的菜单
Jan 13 Javascript
ES6深入理解之“let”能替代”var“吗?
Jun 28 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
Javascript删除数组里的某个元素
Feb 28 Javascript
VUE脚手架的下载和配置步骤详解
Apr 01 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
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
禁止刷新,回退的JS
2006/11/25 Javascript
json跟xml的对比分析
2008/06/10 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
深入理解js中this的用法
2016/05/28 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
解析Python编程中的包结构
2015/10/25 Python
python简单实例训练(21~30)
2017/11/15 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
Python更新所有已安装包的操作
2020/02/13 Python
Python try except finally资源回收的实现
2021/01/25 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
称象教学反思
2014/02/03 职场文书
驾驶员培训方案
2014/05/01 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
个人合伙协议书范本
2014/10/14 职场文书
党支部书记岗位职责
2015/02/15 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
Python Numpy库的超详细教程
2022/04/06 Python