【发布时间】:2008-12-01 09:13:04
【问题描述】:
我有一个带有这一行代码的greasemonkey用户脚本...
window.close();
但 Firefox 不允许用户脚本关闭窗口(由错误控制台中的错误消息报告)
这个问题有解决办法吗?
【问题讨论】:
标签: javascript firefox greasemonkey
我有一个带有这一行代码的greasemonkey用户脚本...
window.close();
但 Firefox 不允许用户脚本关闭窗口(由错误控制台中的错误消息报告)
这个问题有解决办法吗?
【问题讨论】:
标签: javascript firefox greasemonkey
您需要更改 Firefox 的配置设置 (about:config) 以允许这样做。
现在您的脚本可以使用 'window.close()' 关闭 TAB
例如。
function closeTab(){
window.open('', '_self', '');
window.close();
}
【讨论】:
由于 Firefox 将 Greasemonkey 代码与外部网站上的脚本代码具有相同的特权,因此不可能只允许 Greasemonkey 代码能够关闭窗口,而不允许常规脚本。
【讨论】:
现在一些 -monkies 允许使用 @grant 选项来正式解锁诸如 window.close() 之类的命令而无需执行关于:配置。比如在Tampermonkey:
// @grant window.close
// @grant window.focus
(后者 grant 允许您将浏览器重新聚焦在您的窗口上。) 这将消除错误。
编辑:正如@baptx 在 cmets 中正确提到的,浏览器的安全选项也应设置为允许脚本关闭窗口。
【讨论】:
about:config 中将 dom.allow_scripts_to_close_windows 设置为 true。
@grant window.close 或 @grant window.focus,至少与 Greasemonkey