当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript:判断iframe是否加载完成的完美方法

Javascript
JavaScript Break 和 Continue区别教程
JavaScript 特殊字符
JavaScript 指导方针
JavaScript进阶教程(第四课第一部分)
JavaScript初级教程(第一课)
JavaScript初级教程(第五课续)
JavaScript进阶教程(第一课)
JavaScript进阶教程(第二课)
JavaScript进阶教程(第二课续)
JavaScript进阶教程(第三课)
JavaScript进阶教程(第三课第二部分)
setTimeout在类中使用的问题!
如何解决attachEvent函数时,this指向被绑定的元素的问题?
js检测客户端不是firefox则提示下载
在页面上点击任一链接时触发一个事件的代码
仿豆瓣分页原型(Javascript版)
javascript表格控件:Chgrid,简化型
收集的网上用的ajax之chat.js文件
给网站上的广告“加速”显示的方法
在JavaScript中通过URL传递汉字的方法

Javascript 中的 JavaScript:判断iframe是否加载完成的完美方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 702 ::
收藏到网摘: n/a

一般来说,我们判断 iframe 是否加载完成其实与 判断 JavaScript 文件是否加载完成 采用的方法很类似:

var iframe = document.createElement("iframe");
iframe.src = "http://www.ruanchen.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 = "http://www.ruanchen.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 事件有一些潜在的问题。