javascript - 检查 window.closed 是否重定向到另一个 URL/主机

标签 javascript html

我有检查窗口是否关闭的代码。如果我停留在同一页面上,它会起作用。
使用 Internet Explorer,如果我单击一个链接然后重定向到另一个站点,即使 WINDOW 实际上从未关闭,window.closed 也会返回 true。

我这样做:

w = window.open("mypage.html");

var t = setInterval(function() { 
  if (!w) {  alert('a'); } 
  if (w.closed) { alert('b'); } 
   if (!w || w.closed) { 
     clearInterval(t); hide('mainShadow'); 
   }
}, 800); 

在“mypage.html”中,有一个指向另一个站点的链接。当转到另一边时,w.closed 返回 true

IE有没有真正检查窗口是否关闭的好方法?
契约(Contract)并不真正令人满意,因为窗口从未真正关闭过。

此代码适用于 Chrome,不适用于 IE9

最佳答案

The contract isn't really satisfied because the window never actually closed.

这似乎是困惑的根源。 JavaScript-in-a-browser 中的 window 对象指的是显示某个浏览器窗口中体现的文档的窗口,但它并不指浏览器本身看到的那个窗口。单个浏览器窗口也不是与单个 window 实例关联的情况。所以 window 实例可以关闭,因为它不再显示。这是准确的,因为严格来说,window 元素不是关于作为窗口外部 View 的浏览器实体 window,而不是 JavaScript 对象 window 这是包含代码的文档看到的窗口的内部 View 。

简短的版本是,我不相信有一种方法可以从网页中执行此操作,因为可见性的外部范围,即 window 对象,并不指代实际您要操作的对象。

关于javascript - 检查 window.closed 是否重定向到另一个 URL/主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13406418/

相关文章:

javascript - 修复联系表格 - 消息发送成功

html - 表格单元格的 :hover attribute doesn't change background color

javascript - 在浏览器控制台中键入时,var x=10 和 x=10 有什么区别?

javascript - CORS "Access-Control-Allow-Origin"值是如何暴露给浏览器的?

javascript - 使用脚本/插件跟踪页面加载时间 - 就像 Google Analytics,但在我们自己的服务器上

html - 伪元素中的 Internet Explorer Material 图标不起作用

html - Bootstrap 中 key 对值的左右对齐

javascript - wysihtml5 - 如何禁用下划线标签

php - 不会发生字符串拆分。我正在尝试使用 str_split() 函数

javascript - 如何将 ViewModel 属性传递给 ajax post 方法?