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

Javascript
JavaScript 渐变效果页面图片控制
JavaScript blog式日历控件新算法
Javascript 读后台cookie代码
js 弹簧效果代码
JavaScript滑移效果代码
javascript字符串拆分成单个字符相加和不超过10,求最终值
Prototype中dom对象方法汇总
Jquery与Prototype混合用法对比
javascript下IE与FF兼容函数收集
突破winxp sp2/win2003 sp2超强弹窗代码
js点击出现场层层外点击层消失的代码
Javascript模拟scroll滚动效果脚本
javascript各种复制代码收集
javascript的trim,ltrim,rtrim自定义函数
仿3721首页模块拖曳移动效果js代码[可拖曳层移动层]
Javascript拖拽系列文章1之offsetParent属性
Discuz! 6.1_jQuery兼容问题
js日历控件(可精确到分钟)
javascript DOM实用学习资料
javascript实现的树型下拉框改进版

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 587 ::
收藏到网摘: 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 事件有一些潜在的问题。