【问题标题】:How to clear sessionStorage when navigating to another page but not on refresh?导航到另一个页面但不刷新时如何清除 sessionStorage?
【发布时间】:2017-05-13 18:53:58
【问题描述】:

我的一个网页中有一些复选框,此页面必须每 1 分钟刷新一次,以解决一些数据一致性问题。

我正在使用window.sessionStoage 保留已选中的复选框,以便用户不会丢失页面刷新时已选中的复选框。

但我想在用户离开该页面时清除sessionStorage不一定要离开我的网站,可能会转到同一网站上的另一个页面),并且相同如果我使用onunload 事件,那么在刷新的情况下也将清除存储。

是否有任何其他事件或任何解决方法可以帮助我实现这一目标。

【问题讨论】:

  • 您可以使用会话或本地存储在页面顶部设置一个变量,以确定该页面是否为同一页面。如果是或不是,清除会话。

标签: javascript html session-storage sessionstorage


【解决方案1】:

对于您的特定情况,窗口事件可以派上用场。因此您可以对模糊和焦点事件做出反应,因此离开浏览器选项卡会引发blur 事件。

$(window).blur(function(){
  //clear session
});

$(window).focus(function(){
  //maybe some code to re-init session data
});

【讨论】:

  • 我已经编辑了我的问题,用户可能会转到同一网站上的另一个页面。
【解决方案2】:

您是否可以尝试将当前页面的路径/名称保存在会话存储中,并在页面的每个初始化时检查页面名称是否等于会话存储中的名称。如果没有,你可以清除它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    相关资源
    最近更新 更多