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


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

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



相关阅读:
怎样在ASP.NET中使用三层架构
-moz-user-select与onselectstart 禁止选择文字的方法
Linux系统下设置开机启动文件的方法
JS中encodeURIComponent函数用php解码的代码
直接通过ADO操作Access数据库
BluePage通用分页类助开发者提高开发效率
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
JS获取IUSR_机器名和IWAM_机器名帐号的密码
css基础教程属性篇之四
兼容PHP5的PHP目录管理函数库
详解oracle9i Statspack 的安装和使用
asp.net 存储过程调用
基于CSS的30个导航和按钮优秀设计教程
使用SQL Server 2008实现可调窗口应用
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4