![](/img/trans.png)
[英]From inside an iframe, how can I determine if the parent page has finished loading?
[英]How can I notify the parent page when a popup has finished a load which the parent initated?
我的主HTML页面执行以下操作:
var popup = window.open(...);
// Wait for popup to load
popup.onload = function() { do_something(); };
popup.location = "new-page.html";
我想在new-page.html
加载完成后调用do_something
。 但是我现在所做的并不起作用 - do_something
永远不会被调用。
我怎样才能做到这一点?
我只关心让它在FF 3.5中工作,如果这让事情变得更容易。
您可以使用window.opener。<functionName>并将您的通知代码放在父页面上的该函数中
你尝试过使用开启对象吗?
或者,在不弄乱子窗口的HTML的情况下,您可以在父项的load事件上附加监听器。 在这个解决方案中,我将使用jQuery简单,但任何库甚至手动事件附件都可以。
在父母的HTML中:
<iframe id="foo"></iframe>
<script type='text/javascript'>
var element = $("#foo");
element.load( function( eventObject ) {
// do something here
} );
// Now that the event listener is attached, we can set the source.
element[0].src = "foo.html";
</script>
注意,我没有尝试先设置源,然后附加监听器,我不确定这是否可以保证始终有效。 可能会发生在加载加载侦听器之前创建/加载iframe,我不确定。 但是,通过在连接侦听器后设置src,我确信将调用加载侦听器。
巴蒂尔
尝试在弹出的onload中调用doSomething方法。 您可以使用window.opener返回父级
在你加载的.html中,你可以在开头窗口调用一个函数(如果存在的话)末尾有一个简单的一个衬里
<script type='text/javascript'>
if (window.opener && window.opener.do_something) window.opener.do_something(window);
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.