2013-11-28 28 views
4

當我使用window.open(href)以編程方式打開一個新標籤頁時,兩個標籤頁同步工作,這意味着我停止時在其中之一的JavaScript調試器上,第二個被凍結。這是一個適當的鉻行爲?有辦法解決這個問題嗎?在Firefox中,同樣的問題很好。Chrome瀏覽器在window.open()後同步標籤()

回答

1

此行爲是正確的。使用Javascript打開的Windows與他們的父母共享一個Javascript解釋器 - 調用window.open()返回對新窗口的引用,並且子節點可以通過window.opener獲得對父節點的引用。只要窗口顯示來自相同來源的頁面,運行在兩個窗口中的腳本就可以通過這些引用共享數據,因爲Window對象也是Javascript全局上下文。例如,如果父窗口具有名爲example的全局變量,則子窗口可以將該變量引用爲window.opener.example

由於兩個窗口共享一個Javascript解釋器,因此在調試器中停止其中一個窗口應該停止這兩者。我不知道爲什麼Firefox不這樣做 - 不停止涉及兩個窗口似乎可以使調試某些腳本非常困難。

+0

感謝您的回覆!你知道任何方式來覆蓋這種行爲嗎? – Boltosaurus

+0

使用除window.open()以外的方法打開新窗口,例如讓用戶用'target =「_ blank」'屬性點擊一個鏈接。 – duskwuff

相關問題