2012-09-01 56 views
1

我有一個父窗口打開一個新窗口,並試圖檢測子窗口何時加載。在Chrome中,我試過設置子窗口的onload屬性

open('http://www.google.com').onload = function() { alert(location.href); }; 

但這似乎不起作用。

爲什麼上述方法不起作用?有替代品嗎?

回答

0

如果你想絕對確定一個頁面已經加載,你可以使用消息傳遞。

如果您可以使用HTML5,則會有一個名爲web-messaging的新功能。 這對於跨域來源非常有效。

如果HTML5不是選項,請改用JS。我使用了一個簡單的jQuery插件:windowmsg。它爲我工作出色。我真的不確定這是在跨站點環境中工作,但我認爲它應該。

請小心這些解決方案提供的安全問題。

-1

從技術上講,子窗口和父窗口是瀏覽器的兩個不同實例。我們稱他們爲子窗口和父窗口。他們無法訪問彼此。因此,無法在第二個窗口中單擊HTML元素時在一個窗口中執行任何操作。

所以,我建議你不應該打開一個新窗口,如果你需要訪問。你可以使用fancybox或lightbox,這是有效的窗口的一部分,你可以控制。

0

這個方法應該可以工作(並且適用於我),但不能在打開窗口時使用來自不同域的文檔。

出於安全原因,新窗口不會將加載事件分派給其他域中的文檔。