首页 > 解决方案 > 使用本地存储在每个新会话上重置变量

问题描述

我试图在跨越多个页面的用户会话开始时只运行一次。

我试图使用 sessionStorage 来测试是否存在最初默认为 false 的变量,但由于脚本中的 JavaScript 重定向,它不会在某些浏览器中持续存在:

window.location.href

有没有办法用更可靠的本地存储来模仿这一点?

即在每个新用户会话开始时只做一次。会话可能有多个页面,因此单个 javascript 变量将不起作用。

更新:根据评论中的要求,基本逻辑是:

  1. 新会话打开。
  2. 重定向一次到查看的最后一页。
  3. 设置重定向为真。以防止这种情况再次发生。

我意识到除了本地存储之外还有其他方法可以做到这一点。如果可能的话,使用它会很好。

标签: javascriptlocal-storagesession-storage

解决方案


您可以检查该项目是否已经存在或者它是否为空: localStorage.getItem("itemname");

如果它不存在(== null),则它是第一个“运行”,因此您可以设置它以防止进一步循环执行。利用: localStorage.setItem("itemname", "notNull");


推荐阅读