2012-06-20 24 views
4

我在Safari中使用Javascript的window.closed屬性有一個奇怪的問題。 當我打開一個新窗口並在該窗口中導航時,關閉後的屬性將始終保持爲假。window.closed在Safari中失敗

這是在Safari中的默認行爲?我在IE,Firefox和Chrome中沒有問題。

我的代碼:

var winRef = window.open(someURL); 
// ... Polling logic ... 
// Navigate in the opened window and close it. 
console.log(winRef.closed); // Will output false even though the window is closed. 

看來,winRef變量頁面導航過程中失去其參考窗口。

以下步驟將產生Safari中的問題

  1. 使用設在這裏的示例代碼:http://jsfiddle.net/CMK7h/9/以及在Safari中打開
  2. 導航在打開的窗口到不同的頁面(不要使用谷歌搜索,因爲這不會導致頁面導航)
  3. 現在關閉打開的窗口
  4. 控制檯仍應輸出'打開'。

回答

0

只要該窗口仍然打開,關閉的屬性應該是錯誤的。

這是一個正常工作的例子。如果警報關閉,該警報將顯示爲true,如果仍然打開,則警報顯示爲false。

http://jsfiddle.net/QHXcG/2/

+0

我遇到的問題是,當我在窗口中打開一個新的窗口,然後導航Chrome和Safari失去其參考該窗口,它會導致關閉保持關閉後假。 –

+0

如果您所做的只是在該窗口中進行導航,那麼它在技術上仍然是開放的,並且由於它是開放的,因此該值將保持爲假。我在FF和Chrome中都嘗試了這一點,獲得了相同的結果。如果它是打開的,即使在瀏覽之後,它仍然返回false,因爲窗口仍然打開。 – bjo

+0

以下代碼示例將在打開的窗口中導航並關閉它(使用Safari)時始終返回false:http://jsfiddle.net/CMK7h/9/ –

相關問題