IE:取消设置window.opener

时间:2013-03-02 00:33:12

标签: javascript internet-explorer

我正在尝试检查我的网站上的窗口是否可以关闭:

if (window.opener && window.opener.closed === false) {

用户可以通过另一个设置window.opener的窗口访问我的网站。当用户最初使用:window.opener访问我的网站时,我可以“重置”window.opener = null。但是,这在IE中不起作用(在下一页上,window.opener已恢复)。

有没有办法在IE中“重置”window.opener构造,或者对我的问题进行另一种跨浏览器解决方案?

1 个答案:

答案 0 :(得分:1)

我找到了一个不完全类似的解决方案,但它可以用于我的目的。如果开启者来自同一个域,我只想关闭窗口。

if (window.opener.location.hostname.indexOf(window.location.hostname) > -1) {

但是,如果开启者来自不同的主机,则IE不允许您访问window.opener.location。这实际上很有效:

try {
    //snippet above
}
catch (error) { /* no action needed; assume different host */ }