Window.close 和 Self.close 无法关闭 Chrome Windows:综合分析
调用 window.close() 或 self.close JavaScript 代码中的 () 可能无法关闭 Chrome 中的窗口。这种差异源于一种常见的误解,即 Chrome 禁止脚本关闭窗口,除非它们是由脚本创建的。虽然这是错误的,但这些方法可能仍然无法按预期运行。本文深入探讨了根本原因并探讨了潜在的解决方案。
安全限制
现代浏览器已实施安全措施来防止恶意脚本随意关闭窗口。根据 window.close() 规范,JavaScript 通常不允许关闭不是由同一脚本创建的窗口。此限制旨在遏制安全漏洞和用户不便。
Firefox 实施
Firefox 严格遵守这些安全准则,明确禁止脚本关闭未由脚本。如果 Greasemonkey/Tampermonkey 脚本尝试在 Firefox 中使用 window.close(),则会触发错误消息:“脚本可能无法关闭未由脚本打开的窗口。”
Chrome 实现
Chrome 则相反,允许脚本关闭非脚本创建的窗口。但是,此异常不会扩展到 Greasemonkey 或 Tampermonkey 等用户脚本上下文。尝试从这些上下文中使用 window.close() 将导致静默失败。
解决方法
虽然 Chrome 扩展程序和 Firefox 插件提供了可靠的关闭解决方案windows,有一些针对用户的 hacky 解决方法脚本:
Chrome:
Firefox:
长期解决方案
最可靠的方法是创建专用的 Chrome 扩展程序或 Firefox 插件可以有效地调用 window.close() 。或者,用户脚本开发人员可以考虑向 Greasemonkey 或 Tampermonkey 提交功能请求以获得内置窗口关闭功能。
以上是为什么 `window.close()` 和 `self.close()` 无法关闭 Chrome Windows?的详细内容。更多信息请关注PHP中文网其他相关文章!