Chrome 中 JavaScript 的窗口关闭限制:限制性安全措施
虽然 JavaScript 提供了 window.close() 和 self.close()方法来关闭窗口,这些工具在 Chrome 中遇到了障碍,在 Chrome 中,使用脚本关闭窗口并不总是有效
源自脚本的关闭控制
出于安全考虑,Chrome 实施了一项限制 JavaScript 关闭窗口能力的策略。仅当窗口是由调用关闭的同一脚本创建时,它才允许关闭窗口。此限制可防止恶意脚本任意关闭窗口并破坏用户体验。
Firefox 遵守
Firefox 严格遵守此限制,任何从脚本关闭窗口的尝试遇到错误。相比之下,Chrome 允许用户脚本例外,但没有确认提示。
Hacky Workarounds
Chrome 的自我重定向漏洞曾经允许关闭窗口,但此方法已被大部分被封锁。一种针对 TamperMonkey 的潜在解决方法是在脚本标头中使用 @grant window.close。然而,这并不适用于所有情况,并且需要新打开的选项卡且没有浏览历史记录。
安全影响和长期解决方案
带来的安全风险window.close 没有适当的限制使其不适合一般使用。推荐的解决方案是开发 Chrome 扩展程序或 Firefox 插件,它们可以可靠地关闭窗口。 Greasemonkey 和 Tampermonkey 可能通过 API 扩展提供此功能。
作为最后的手段,对于个人脚本,禁用 Firefox 中的allow_scripts_to_close_windows 设置可以启用窗口关闭。但是,应谨慎行事,因为这会破坏浏览器的安全性。
以上是为什么 JavaScript 无法始终关闭 Chrome 中的窗口?的详细内容。更多信息请关注PHP中文网其他相关文章!