我有一個父窗口打開一個新窗口,並試圖檢測子窗口何時加載。在Chrome中,我試過設置子窗口的onload屬性
open('http://www.google.com').onload = function() { alert(location.href); };
但這似乎不起作用。
爲什麼上述方法不起作用?有替代品嗎?
我有一個父窗口打開一個新窗口,並試圖檢測子窗口何時加載。在Chrome中,我試過設置子窗口的onload屬性
open('http://www.google.com').onload = function() { alert(location.href); };
但這似乎不起作用。
爲什麼上述方法不起作用?有替代品嗎?
如果你想絕對確定一個頁面已經加載,你可以使用消息傳遞。
如果您可以使用HTML5,則會有一個名爲web-messaging的新功能。 這對於跨域來源非常有效。
如果HTML5不是選項,請改用JS。我使用了一個簡單的jQuery插件:windowmsg。它爲我工作出色。我真的不確定這是在跨站點環境中工作,但我認爲它應該。
請小心這些解決方案提供的安全問題。
從技術上講,子窗口和父窗口是瀏覽器的兩個不同實例。我們稱他們爲子窗口和父窗口。他們無法訪問彼此。因此,無法在第二個窗口中單擊HTML元素時在一個窗口中執行任何操作。
所以,我建議你不應該打開一個新窗口,如果你需要訪問。你可以使用fancybox或lightbox,這是有效的窗口的一部分,你可以控制。
這個方法應該可以工作(並且適用於我),但不能在打開窗口時使用來自不同域的文檔。
出於安全原因,新窗口不會將加載事件分派給其他域中的文檔。