gpt4 book ai didi

javascript - 如何检测/阻止用户打开新的浏览器窗口?

转载 作者:行者123 更新时间:2023-11-30 18:33:13 25 4
gpt4 key购买 nike

这是在 ASP.Net 应用程序的上下文中。该应用程序使用为页面设置的特定数据。设置此数据后,从该页面开始的所有操作都将使用设置的数据。

问题是,如果用户打开另一个带有竞争数据的选项卡,它会覆盖同一 session 和同一用户的旧数据,从而使第一个选项卡上的操作无效。

我知道建议的方法是重构代码以消除这种耦合,但这是不可能的。这是另一个讨论此问题但未指定重构代码以外的任何解决方案的线程(http://stackoverflow.com/questions/632062/ways-to-detect-ctrl-n-or-when-a-user-opens -一个新窗口)

那么,我如何检测(并通知用户)或阻止用户打开另一个选项卡 - 通过 javascript/Jquery?

最佳答案

您可以设置 session 变量 isActive 并将其设置为 true,以及用户首次打开应用程序时的所有其他 session 数据。此后,如果用户打开另一个选项卡,请检查 isActive 是否为真。如果是,则通知用户,不要再设置数据。

在伪代码中,你的逻辑应该是这样的

if (!isActive)
//set session data
else
//alert the user: You have another active session

这将是一个更好的解决方案,因为不能保证用户不会访问页面来设置 session ,然后在没有通知您的情况下暂时关闭 Javascript 以启动新选项卡。

关于javascript - 如何检测/阻止用户打开新的浏览器窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9029560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com