【发布时间】:2018-11-08 13:48:03
【问题描述】:
根据许多规则和安全功能,window.close() 仅在特定情况下有效:
From the latest working spec 为window.close():
Window 对象的
close()方法应在满足以下所有条件时关闭浏览上下文A:
- 对应的浏览上下文A是script-closable。
- 现任脚本的浏览上下文熟悉浏览上下文A。
- 允许当前脚本的浏览上下文导航浏览上下文A。
如果浏览上下文是由脚本(而不是由用户的操作创建)的辅助浏览上下文,则该浏览上下文是可脚本关闭,或者如果它是一个浏览上下文,其会话历史记录只包含一个文档。
我有一个允许用户关闭新窗口的 Web 应用程序,它可以正常工作,除非不遵守上述规则。
我正在寻找的是检测 close() 函数何时起作用并且仅在这种情况下显示关闭按钮。
我发现有关window.opener 的信息从打开它的窗口返回一个引用。但它不起作用。
if(window.opener != null){
//show button
}
这可能是因为新窗口是使用“右键单击 -> 在新选项卡中打开”而不是脚本打开的。当标签以这种方式打开时window.close() 有效,我只想检测window.close() 何时有效。
有什么想法吗?
【问题讨论】:
标签: javascript window