gpt4 book ai didi

javascript - 阻止人们返回网站?

转载 作者:行者123 更新时间:2023-11-30 06:05:03 25 4
gpt4 key购买 nike

我的任务是想出一种方法来确定某人是否通过使用他们的后退按钮访问了我们的网站(意味着他们离开了我们的网站并返回),如果是,则将他们注销。

我已经提出了一些选项,但我想知道我可能还缺少哪些其他选项。

仅供引用,我们确实有一个 session 状态,所以我们在服务器端覆盖了长期缺席,但他们希望在客户端进行额外的检查。

选项 1:通过 onunload 设置一个在 x 秒后过期的 cooking 。在我们网站的每个页面上,我都会检查所说的 cookie。如果它存在,我假设它们来 self 们网站上的另一个页面并且什么都不做。如果它不存在,我假设他们已经离开我们的网站超过 x 秒并重定向出去。缺点:运行 OS5 的黑莓设备不支持 onunload。

选项 2:与 #1 相同,但不是在卸载时设置 cookie,而是在每次点击指向我们网站上另一个页面的每个链接时设置它。缺点:凌乱

选项 3: 在每次加载我们网站的每个页面时检查浏览器历史记录。如果之前的 URL 不是我们的,我们会将其注销。缺点:浏览器支持? 出于安全考虑,现代浏览器似乎阻止了上一个/下一个历史记录对象。

选项 4:通过 JS,每 x 秒检查一次 cookie。如果它在那里,将其重置为在 x 秒后过期。如果不存在,则假设他们是从其他地方返回的。缺点:不确定是否会在该页面可能处于后台时设置 JS cookie(在 iPhone 上切换应用程序,或在桌面浏览器中使用不同的选项卡)。

我还应该考虑其他选择吗?有没有“正确”的方法来处理这个问题?这只是在试图阻止正常的浏览器行为吗?

最佳答案

您可以将当前页面名称/操作/标识符保存在 session 变量中,然后使用 javascript onChange/load/keyup/keydown 从服务器请求用户的当前状态。如果不匹配,重定向或以其他方式阻止他们查看当前页面。

这是我用过的一种方法,但它有缺点....例如,当用户使用后退按钮时,onload 似乎并不总是有效。某些表单字段上的 OnChange 等绝对有效。计时器也非常简单,但无论如何,快速的用户都可以通过页面获得输入。

关于javascript - 阻止人们返回网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5556958/

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