2012-10-08 60 views
0

我有舊的代碼,它使用window.opener。我在jQuery對話框中將這些頁面的打開方法從彈出式更改爲iframe。這對IE和Chrome很好,我只需要在onload事件中重置window.opener。但Firefox不玩球。無論開叫者是或將要被設置(這是可笑的),它將開叫器設置爲null。有沒有辦法在Firefox中更改window.opener?我知道我可以通過在其他地方存儲opener信息來解決它,但它需要更多的更改。如何在Firefox中設置window.opener

+0

我們無法預測您當前的代碼,所以我們無法提供幫助。 – reporter

回答

1

防止重寫主機對象的只讀屬性並不可笑。總之,沒有辦法改變它。你需要做的是將所有對window.opener的引用替換爲不同的值,並將你感興趣的對象放在那裏。

+0

爲什麼然後將其更改爲空?它適用於IE和Chrome。在Chrome中,它至少在同一個域中起作用。 – user1151788

+0

我有點驚訝它改爲null。在你的用例中,它聽起來應該是空的,不過,像這樣修改主機對象容易出現未定義的行爲。在任何情況下,你都不應該修改或試圖修改這個屬性,所以這種行爲是不相關的。 –

+1

這是Chrome中的一個已知錯誤,它允許將window.opener設置爲隨機值。根據規範,您可以將其更改爲的唯一值爲空。 –

相關問題