Javascript 是否可以创建一个按钮,在新选项卡中打开指定网站并关闭当前网站?
我正在为客户创建WordPress网站。本网站为虐待受害者提供支持,我的客户希望网站上有一个“恐慌”按钮,当点击时,可以: a) 将用户发送到指定的网站(例如google.com),然后删除后退按钮的历史记录 b) 在新选项卡中打开指定的网站(消除“后退”按钮问题),然后关闭当前网站 我尝试添加一个简单的按钮,如下所示:Javascript 是否可以创建一个按钮,在新选项卡中打开指定网站并关闭当前网站?,javascript,jquery,wordpress,cookies,browser-history,Javascript,Jquery,Wordpress,Cookies,Browser History,我正在为客户创建WordPress网站。本网站为虐待受害者提供支持,我的客户希望网站上有一个“恐慌”按钮,当点击时,可以: a) 将用户发送到指定的网站(例如google.com),然后删除后退按钮的历史记录 b) 在新选项卡中打开指定的网站(消除“后退”按钮问题),然后关闭当前网站 我尝试添加一个简单的按钮,如下所示: <button onclick="window.close();">Close</button> 关闭 但我在控制台中看到了: [警告]无法关闭窗口
<button onclick="window.close();">Close</button>
关闭
但我在控制台中看到了:
[警告]无法关闭窗口,因为它不是由JavaScript打开的
如果使用Javascript无法做到这一点,还有其他方法可以做到吗?不可能
您遇到的问题是浏览器不允许Javascript控制打开和关闭选项卡等操作,这是正确的。网页实际上不应该能够访问或控制其选项卡之外的内容,这是一个称为沙箱的概念。网页可以在自己的沙箱中自由播放,但不允许了解或更改沙箱之外的内容。“浏览器历史记录”和“其他选项卡”都位于网页的沙箱之外
这并不是说这在JavaScript中是不可能的,这对于任何设计良好的浏览器来说都是不可能的,句号。这不是一个你可以用什么技术来实现的问题,这是一个设计明确禁止的行为。如果你能在主流浏览器上实现这一点,你可能会得到一笔bug赏金。想象一下,一个恶意参与者可以通过“后退”按钮修改历史记录,或者关闭其他选项卡来做什么
除此之外,我还担心你的雇主正在采取的方法。滥用者通常比受害者更精通技术,像这样的“恐慌按钮”甚至不会影响浏览器的整体历史,更不用说击败任何先进的监控软件,如间谍软件,或一个奇特的路由器的DNS监控。应劝阻虐待受害者不要使用他们认为受到危害的设备或网络,并应通过可靠和安全的通信渠道寻求帮助。我很担心任何类型的“紧急按钮”功能都会给不懂安全的用户带来虚假的安全感 尝试函数closeWindow(){window.open('','');window.close();},然后从@level_zebra调用,这在Chrome中不起作用。脚本只允许关闭它打开的窗口。感谢您的输入!我怀疑这将超出我的控制范围。我理解你最后一段的意思,坦率地说我同意。我会把这件事告诉我的客户。:)