簡體   English   中英

當彈出窗口完成父啟動的加載時,如何通知父頁面?

[英]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>並將您的通知代碼放在父頁面上的該函數中

你嘗試過使用開啟對象嗎?

http://www.webreference.com/js/tutorial1/opener.html

或者,在不弄亂子窗口的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,我確信將調用加載偵聽器。

巴蒂爾

http://www.shanetomlinson.com

http://www.ubernote.com

嘗試在彈出的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM