4

window.closed在 Safari 中对 Javascript 的属性有一个奇怪的问题。当我打开一个新窗口并在该窗口中导航时,关闭的属性在关闭后将始终保持为 false。

这是 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. 控制台仍应输出“打开”。
4

1 回答 1

0

只要该窗口仍然打开,关闭的属性就应该是假的。

这是它正常工作的示例。如果它关闭,警报将显示 true,如果它仍然打开,则显示 false。

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

于 2012-06-20T22:08:43.980 回答