iframe结构里,父窗口怎么知道子窗口是否加载完毕呢?
我在一个父页面A里,有一个子页B,这个B是一个外部的网页。我需要在A里面判断B是否加载完成了,然后对它的一些元素进行调用。如果我可以改B的代码,我可以用onload通知A...
我在一个父页面A里,有一个子页B,这个B是一个外部的网页。
我需要在A里面判断B是否加载完成了,然后对它的一些元素进行调用。如果我可以改B的代码,我可以用onload通知A页面加载完成了,但是B不是属于我的网页,我不能修改它的代码。那么还有什么别的方法呢?
用setinterval去定时读B里的元素或许是一个方法,可是似乎比较笨……有没有好一点的类似onload的方法呢? 展开
我需要在A里面判断B是否加载完成了,然后对它的一些元素进行调用。如果我可以改B的代码,我可以用onload通知A页面加载完成了,但是B不是属于我的网页,我不能修改它的代码。那么还有什么别的方法呢?
用setinterval去定时读B里的元素或许是一个方法,可是似乎比较笨……有没有好一点的类似onload的方法呢? 展开
3个回答
展开全部
我是gr0org。
上面的回答被白肚吃了。改不了,只好用小号。
attachEvent是为了兼容IE。
已有的iframe用getElementById取。
以下代码实测有效。
<iframe id="if" ></iframe>
<script language="javascript" type="text/javascript">
//var ifr = document.createElement("iframe");
var ifr = document.getElementById("if");
ifr.align='center';
ifr.marginwidth=1;
ifr.marginheight=1;
ifr.frameborder=0;
ifr.scrolling="No";
ifr.width =1007;
ifr.height=3800;
ifr.src = 'url';
if (ifr.attachEvent){
ifr.attachEvent("onload", function(){
alert("Local if is now loaded attachEvent.");
});
} else {
ifr.onload = function(){
alert("Local if is now loaded.");
};
}
上面的回答被白肚吃了。改不了,只好用小号。
attachEvent是为了兼容IE。
已有的iframe用getElementById取。
以下代码实测有效。
<iframe id="if" ></iframe>
<script language="javascript" type="text/javascript">
//var ifr = document.createElement("iframe");
var ifr = document.getElementById("if");
ifr.align='center';
ifr.marginwidth=1;
ifr.marginheight=1;
ifr.frameborder=0;
ifr.scrolling="No";
ifr.width =1007;
ifr.height=3800;
ifr.src = 'url';
if (ifr.attachEvent){
ifr.attachEvent("onload", function(){
alert("Local if is now loaded attachEvent.");
});
} else {
ifr.onload = function(){
alert("Local if is now loaded.");
};
}
追问
好吧,大概明白了……分加到你的大号上吧~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
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打开的是后一个。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能跨域
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询