2012-04-10 14 views
0

如果標題不明確 讓我再形容它 如果有一個具有以下的JavaScript代碼的頁面a.html怎麼能讓兩個窗口(窗口是由另一個打開)進行通信

window.open("http://www.baidu.com/", "_self", ""); 

以及原始窗口和新打開的窗口如何通信?

感謝

+0

快速谷歌會更快。我見過很多。 – Joseph 2012-04-10 08:46:42

+0

@約瑟夫你的意思是谷歌比百度快? – SKing7 2012-04-10 11:07:32

回答

1

新文檔將有一個opener屬性引用從它被打開了窗戶。如果瀏覽器導航到新文檔,這將會丟失。

返回值open將是對新窗口的引用(因此您需要將它分配給變量)。

same origin policy照常適用。

+0

通過測試,由「_self」打開的屬性openner爲null。 – SKing7 2012-04-10 11:01:56

+0

所以我們不能得到結果? – SKing7 2012-04-10 11:09:30

+0

你的問題是自相矛盾的。標題詢問兩個窗口通信,代碼重用現有的窗口。如果沒有兩個窗口,則兩個窗口無法通信。 – Quentin 2012-04-10 12:08:54

0

假設他們是在同一個域,你實際上打開一個新窗口(「_self」不是一個好主意,打開一個新的窗口),你可以做

var w = window.open(....)

w.document....

從子窗口

opener.someFunction()

opener.someVar = ...

如果不是,則需要跨域腳本

+0

通過測試,由「_self」打開的屬性openner爲空... – SKing7 2012-04-10 08:52:40

+0

啊,沒有注意到_self。如果瀏覽器允許代碼,那麼將不會打開新窗口 – mplungjan 2012-04-10 08:58:49

相關問題