iframe结构里,父窗口怎么知道子窗口是否加载完毕呢?

本文深入探讨了iframe的onload与attachEvent方法在不同浏览器间的兼容性问题,并提供了有效的解决方案,帮助开发者确保本地iframe在各种浏览器环境下都能正确加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天找了很多资料,就发现这个有用,类似document.ready方法的还没有找到

window.onload :页面所有元素加载完毕,包括图片

$(document).ready :文档结构加载完毕,图片不一定加载完毕

http://zhidao.baidu.com/link?url=Z7h_mNkeKQ3y3GYWKFEm7a4VrYzXcWEwolDVdSPScaCWFID0_5d7G0xOfmecHqL7hD0FjEde0qdTAudqkaY2uq


比较傻的方法是定时读取iframe中的一些内容

Nicholas C. Zakas 文章《Iframes, onload, and document.domain》的评论中 Christopher 提供了一个新的判断方法(很完美):
var iframe = document.createElement("iframe");
iframe.src = '你的url';
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);
追问
谢谢~不过哦,
iframe.attachEvent("onload", function()
这句跟
iframe.onload
这样有什么区别么?




回答
回答:::这是为了浏览器兼容。IE在创建一个新的iframe时的onload方法需要使用attachEvent来绑定,而原来就存在的iframe的onload方法,则可以直接绑定。你把两个alert("Local iframe is now loaded.");的信息改成不一样的试试就知道了。IE打开的是前一个,FF打开的是后一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值