判断iframe是否加载完成的完美方法


Posted in Javascript onJanuary 07, 2010
var iframe = document.createElement("iframe"); 
iframe.src = "https://3water.com"; if (!/*@cc_on!@*/0) { //if not IE 
iframe.onload = function(){ 
alert("Local iframe is now loaded."); 
}; 
} else { 
iframe.onreadystatechange = function(){ 
if (iframe.readyState == "complete"){ 
alert("Local iframe is now loaded."); 
} 
}; 
} 
document.body.appendChild(iframe);

最近, Nicholas C. Zakas 文章《Iframes, onload, and document.domain》的评论中 Christopher 提供了一个新的判断方法(很完美):

var iframe = document.createElement("iframe"); 
iframe.src = "https://3water.com"; if (iframe.attachEvent){ 
iframe.attachEvent("onload", function(){ 
alert("Local iframe is now loaded."); 
}); 
} else { 
iframe.onload = function(){ 
alert("Local iframe is now loaded."); 
}; 
} 
document.body.appendChild(iframe);

几点补充说明:

IE 支持 iframe 的 onload 事件,不过是隐形的,需要通过 attachEvent 来注册。
第二种方法比第一种方法更完美,因为 readystatechange 事件相对于 load 事件有一些潜在的问题。

Javascript 相关文章推荐
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
php基于redis处理session的方法
Mar 14 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
微信小程序 实例开发总结
Apr 26 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
May 07 Javascript
JSONP解决JS跨域问题的实现
May 25 Javascript
原生js实现购物车功能
Sep 23 Javascript
nuxt静态部署打包相对路径操作
Nov 06 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
Jan 07 #Javascript
EXT中xtype的含义分析
Jan 07 #Javascript
Extjs学习笔记之四 工具栏和菜单
Jan 07 #Javascript
Extjs学习笔记之三 extjs form更多的表单项
Jan 07 #Javascript
Extjs学习笔记之二 初识Extjs之Form
Jan 07 #Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
Jan 07 #Javascript
jQuery DOM操作小结与实例
Jan 07 #Javascript
You might like
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
python实现校园网自动登录的示例讲解
2018/04/22 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
经典优秀个人求职信分享
2013/12/12 职场文书
演讲稿开场白
2014/01/13 职场文书
运动会横幅标语
2014/06/17 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript