Javascript IE:取消开窗器

Javascript IE:取消开窗器,javascript,internet-explorer,Javascript,Internet Explorer,我正在尝试检查我网站上的窗口是否可以通过以下方式关闭: if (window.opener && window.opener.closed === false) { 用户可以通过另一个设置window.opener的窗口访问我的站点。当用户最初使用:window.opener=null到达我的站点时,我可以“重置”window.opener。但是,这在IE中不起作用(在下一页,window.opener被还原) 有没有一种方法可以“重置”IE中的窗口。opener结构,或者其他

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

if (window.opener && window.opener.closed === false) {
用户可以通过另一个设置
window.opener
的窗口访问我的站点。当用户最初使用:
window.opener=null
到达我的站点时,我可以“重置”
window.opener
。但是,这在IE中不起作用(在下一页,
window.opener
被还原)


有没有一种方法可以“重置”IE中的
窗口。opener
结构,或者其他跨浏览器的解决方案来解决我的问题?

我找到了一种不完全类似的解决方案,但可以满足我的需要。我只想在打开程序来自同一域时关闭窗口

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 */ }

应该能够将上述内容重构为
if(window.opener!==window)
以查看其引用是否相同。@MauvisLedford如果用户从我的域中打开一个新窗口,
window.opener
将不在新窗口上,但我希望它关闭。如果用户从另一个域打开我的窗口,它们也将不匹配,但我不希望它关闭。我认为你的建议是错误的
if(window.opener!==null&&window.opener!==window)
@MauvisLedford这仍然不能解决我刚才说的问题。