如何知道是否可以用js

时间:2015-06-01 14:21:15

标签: javascript

因此,在其他地方已经讨论过,只有在脚本打开的情况下,js才能使用window.close()关闭窗口。

我有一个页面,提供了一个打开讨论窗口的按钮。讨论窗口将打开一个包含window.open()的新标签页。讨论页面有一个调用window.close()的按钮,该按钮关闭讨论窗口并将您带回到上一个选项卡,这样您就可以从上次停止的地方继续。

问题是,如果有人将网址直接带到讨论窗口,则关闭按钮不起作用。

有没有办法检测窗口是否可以使用window.close()关闭,所以我只能在按钮显示时才能显示该按钮?

2 个答案:

答案 0 :(得分:9)

您可以查看window.opener是否不是null

  

从另一个窗口打开窗口时,它会保留一个引用   到window.opener的第一个窗口。如果当前窗口没有   在opener中,此方法返回NULL。 Windows Phone浏览器没有   支持window.opener。如果开启者,IE也不支持它   在不同的安全区域。

答案 1 :(得分:3)

您可以尝试使用window.opener对象,它返回对打开当前窗口的窗口的引用(如果它是另一个窗口),或NULL如果当前窗口未通过JS打开。

if (window.opener) //Show button