[英]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.