首页 > 解决方案 > 是否可以创建一个在新选项卡中打开指定网站并关闭当前网站的按钮?

问题描述

我正在为客户创建一个 WordPress 网站。该网站为受虐待的受害者提供支持,我的客户希望网站上有一个“恐慌”按钮,当点击该按钮时,可以:

a) 将用户发送到指定网站(例如 google.com),然后清除“返回”按钮的历史记录

b) 在新选项卡中打开指定网站(这消除了后退按钮问题),然后关闭当前网站。

我尝试添加一个像这样的简单按钮:

<button onclick="window.close();">Close</button>

但后来我在控制台中得到了这个:

[警告] 无法关闭窗口,因为它不是由 JavaScript 打开的

如果使用 Javascript 无法做到这一点,我还有其他方法可以做到吗?

标签: javascriptjquerywordpresscookiesbrowser-history

解决方案


不可能。

您面临的问题是浏览器不允许 Javascript 控制诸如打开和关闭选项卡之类的事情,这是正确的。一个网页真的不应该能够访问或控制其选项卡之外的东西,这是一个称为沙盒的概念。网页可以在自己的沙盒中自由播放,但不允许了解或更改其沙盒之外的内容。“浏览器历史记录”和“其他选项卡”都在您网页的沙箱之外。

并不是说这在 JavaScript 中是不可能的,对于任何设计良好的浏览器来说都是不可能的,句号。这不是您可以使用什么技术来完成此操作的问题,而是设计明确禁止的行为。如果您可以在主流浏览器上执行此操作,您可能会获得错误赏金。想象一下恶意行为者可以通过修改后退按钮中的历史记录或关闭其他选项卡的能力来做些什么。

除此之外,我担心你的雇主正在采取的方法。滥用者通常比他们的受害者更精通技术,像这样的“恐慌按钮”甚至不会影响浏览器的整体历史,更不用说击败任何高级监控,如间谍软件或花哨的路由器的 DNS 监控。应阻止虐待受害者使用他们认为受到损害的设备或网络,并应通过可信赖和安全的通信渠道寻求帮助。我很困扰,任何形式的“紧急按钮”功能都会给不熟悉安全的用户带来错误的安全感。


推荐阅读