假设用户在许多不同的浏览器窗口中打开了我的 Web 应用程序。一段时间后,他超时/退出应用程序。
我想关闭所有相关的浏览器窗口。我们该如何处理呢?
(我认为 GMAIL 会这样做)
如果您维护对任何子窗口的引用,则可以结合使用window.close()和setTimeout()。
请注意,在关闭用户的窗口时您应该小心谨慎,因为它可能会导致糟糕的用户体验。想象一下,我打开了我的银行网站来查看一个帐户的交易,以便我可以清算/核对它们。但在中间我跑去吃午饭什么的。当我回来时,我发现我所有的窗口都已关闭,我必须重新登录,即使我不需要,因为我只是在查看一个相对静态的数据列表。或者更糟糕的是,如果关闭窗口没有正确编码,我可能会发现我的浏览器已经完全关闭,这绝对是一种糟糕的体验。
不。就一般用户而言,您的网站无权关闭用户的窗口,如果您尝试,他们会讨厌您的网站。如果您认为您的网站的正常运行取决于能够关闭用户的浏览器,那么您就错了。
此外,您无法指望您尝试关闭用户窗口或执行类似的此类操作是否成功。因此,无论用户在浏览器中做什么,都要花时间让您的网站正常运行。此外,这种方式更容易。
编写一个脚本,当焦点被带到窗口(对于您的应用程序)时,它会检查会话是否仍然有效。如果不是,则发送命令关闭窗口。