【发布时间】:2015-05-10 08:20:45
【问题描述】:
我想知道如何防止用户在他/她仍然打开以前的浏览器实例时打开新标签?
我的目的是防止覆盖数据。 例如,如果用户在同一个应用程序中打开一个新选项卡,我想提示类似
的消息“您正试图在同一个应用程序中打开一个新的活动窗口。请关闭上一个窗口。”
有没有办法用 php、javascript、session 或 cookie 来实现?
【问题讨论】:
标签: javascript php session cookies
我想知道如何防止用户在他/她仍然打开以前的浏览器实例时打开新标签?
我的目的是防止覆盖数据。 例如,如果用户在同一个应用程序中打开一个新选项卡,我想提示类似
的消息“您正试图在同一个应用程序中打开一个新的活动窗口。请关闭上一个窗口。”
有没有办法用 php、javascript、session 或 cookie 来实现?
【问题讨论】:
标签: javascript php session cookies
我想我会在 PHP 中使用会话信息...当用户打开一个选项卡时,将它的选项卡添加到会话中。如果它已经加载了该选项卡,请提出问题。棘手的部分是要知道用户何时停止使用您的应用程序或只是闲置。
您永远无法阻止用户在其浏览器中打开新标签页,但您可以阻止应用中的信息传递给用户。您也可以使用 cookie,但如果不需要记住比会话更长的时间,我认为没有意义。
如果您想使用 JavaScript 而不是 PHP 进行检查,您还可以查看 HTML5 网络存储。它适用于 IE8 及更高版本。它只是一个键/值数据库。
【讨论】:
只要它是同一个浏览器窗口,您就不能说用户是打开了一个新标签,还是只是在同一个标签上加载了页面。即使在private mode 或incognio mode 中,标签也会共享会话。
会话依赖于 cookie,其中 cookie 可以比会话更持久。同样的问题。
您可以做的是防止用户在之前的会话仍然有效时再次登录,但这将在用户打开新的浏览器窗口(或其他浏览器)并尝试登录时起作用。
【讨论】: