【问题标题】:How to detect difference between refresh and back button in Safari如何检测Safari中刷新和后退按钮之间的区别
【发布时间】:2018-02-26 12:21:26
【问题描述】:

我使用这段代码在页面刷新时删除 sessionStorage。

if (window.performance) { 
   if (performance.navigation.type == 1) { 
      sessionStorage.removeItem("rowsCache"); 
   } 
}

它可以工作,但是,window.performance 在 mac safari 9 上抛出 undefined。 有没有其他选择?

【问题讨论】:

    标签: javascript jquery refresh back


    【解决方案1】:

    当用户第一次访问时,在会话存储中存储一个值:)

    function f()
            {
              if(typeof sessionStorage != 'undefined'){
                if(!sessionStorage.getItem('visited')){ //first time visiting
                    sessionStorage.setItem('visited',true);
                }else{ //refresh
                  sessionStorage.removeItem("rowsCache");
                }
               }
            } 
    

    另一种选择:

    function unload() {
         sessionStorage.removeItem("rowsCache");
    }
    
    window.onbeforeunload = unload;
    

    【讨论】:

    • 试过了,但它仍然会在单击返回按钮时删除我的 sessionStorage。我想要的是当用户刷新时,它会删除 sessionStorage 但是当用户导航到另一个页面然后单击返回时,sessionStorage 应该仍然存在
    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 2012-01-25
    • 2018-02-10
    • 2010-12-26
    • 2018-09-30
    • 2013-05-10
    • 2010-10-10
    • 1970-01-01
    相关资源
    最近更新 更多