使用BACK按钮后删除localStorage(所有浏览器)

时间:2016-10-30 19:29:42

标签: javascript jquery html5 local-storage

我已经为一些对用户体验有用的数据实现了localStorage,但对于应用程序本身并不重要(不会破坏功能)。

问题:每次进入显示页面然后按BACK按钮进入INDEX页面,我的所有本地存储都会消失。

localStorage在INDEX页面中设置了函数:

$(document).ready(function () {
 return $(".sort_link").on("ajax:success", function(e, data, status, xhr) {

             localStorage.removeItem('results');   //removes any old localStorage values



       if (document.getElementById("results-dupl")) {

                 var results = $("#results-dupl").html();   
                 localStorage.results = results           

        } else {

                 var results = $("#searc_re").html();   
                 localStorage.results = results            


        }
  }).on("ajax:error", function(e, xhr, status, error) {

  });

});

基本上,localStorage键是独立设置的,而不是在离开当前INDEX页面之前。

如果我按任何其他重定向到INDEX页面的链接,则不会出现问题。我尝试过,Firefox和Chrome也出现了同样的问题,所以我想 - 在所有浏览器上。

我尝试了什么:

1)在设置localStorage密钥后立即添加localStorage.getItem('results');,如其他问题所示。

2)仔细检查上面看到的函数实际创建了localStorage键 - 是,100%创建。

3)看来在同一个INDEX页面中创建的cookie在访问显示页面后然后使用" BACK"按钮返回INDEX页面。

提前感谢您的帮助。

修改

根据已接受的答案找到解决方案。

基本上,先前已经注释掉脚本正在运行并删除localStorage和cookies:

  localStorage.removeItem('menu');   
  localStorage.removeItem('results');  
  document.cookie = "menu_storage=; expires=Thu, 01 Jan 1970 00:00:00 UTC";   

1 个答案:

答案 0 :(得分:1)

请勿使用localStorage.removeItem('results');。它会解决问题,localStorage.removeItem('results');在这种情况下无用,因为你可以编辑localStorage而不是删除它