我已经为一些对用户体验有用的数据实现了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";
答案 0 :(得分:1)
请勿使用localStorage.removeItem('results');
。它会解决问题,localStorage.removeItem('results');
在这种情况下无用,因为你可以编辑localStorage而不是删除它。