对于我的 Web 应用程序,我一次只需要保留一个页面实例。如果在新选项卡中打开新实例,我需要关闭前一个。我看过很多与此相关的帖子,他们都说我只能关闭 Chrome 中以编程方式打开并由自身创建的选项卡,但不能关闭当前选项卡。我知道这是一种安全威胁,但这是客户的要求。客户端浏览器设置是可控的,我可以根据需要进行任何设置。所以,我正在寻找一种方法来绕过这个安全策略。
问问题
299 次
1 回答
1
您只能关闭您打开的页面。但您可以关闭另一个选项卡。
但是你仍然可以实现你想要的。与您的服务器通信,并通过检查存储在其页面中的令牌来检查同一个客户端是否打开了两个选项卡。如果是,请关闭其中一个(只能关闭自己),如果由于某些安全原因未能自行关闭,则只需将整个页面变为白色。
- 页面加载时使用令牌 ping 到服务器并保持每个事件的心跳 n 秒(通常,5s - 60s 很好)。
- 服务器存储生成选项卡连接令牌并存储会话。回复客户。您可以在此处添加一些逻辑,例如。关闭标签。
- 客户端接收响应,处理动作,例如。关闭标签。如果无法关闭,则在顶部放置一个叠加层或删除页面上的所有元素,甚至重定向到另一个页面。
- 记得删除服务器中的超时会话。
于 2021-03-15T15:41:04.493 回答