关闭浏览器后,localStorage重置

时间:2018-07-24 12:33:35

标签: javascript html5 google-chrome web-applications local-storage

我已经开发了本地 HTML5 / JavaScript Web应用程序,并且试图将数据存储在 localStorage 中。

如果不关闭浏览器就关闭webapp 选项卡,就没有问题:当我在新选项卡中重新打开webapp时,可以在localStorage中找到数据。

我在开发人员工具(F12)->应用程序中看到一个localStorage对象存在并且我的数据在那里。

如果我关闭浏览器,那么当我重新打开Web应用程序(也重新启动浏览器)时,我将失去一切。

但是我在开发人员工具(F12)->应用程序中看到localStorage对象存在,但是它是无效的。

我没有使用localStorage.clear()指令,也没有删除我的js代码中的任何项目。

浏览器:我使用的是Google Chrome版本67.0.3396.99(正式版本)(64位)(在隐身模式下不可用)。

有什么主意吗?

2 个答案:

答案 0 :(得分:2)

已解决

在我的JS代码中,我正在使用window.onbeforeunload = function() {...}指令来防止浏览器关闭而不保存数据。我已经删除了此说明。

此外,我从Internet选项中取消选择了“退出时删除浏览历史记录”标记。

现在,即使关闭浏览器并重新启动Web应用程序(也重新启动浏览器),我仍可以从localStorage还原数据。

答案 1 :(得分:0)

我没有使用太多本地存储,但这对我有用。

set_data();函数将数据设置在本地存储中。每当您要保存当前页面数据时就触发此操作。

然后,当浏览器关闭并重新打开页面时,localStorage.getItem找到所有存储的数据。

var data = localStorage.getItem('my_data');

// for testing
alert(data);

set_data = function() {

  data = localStorage.setItem('my_data', 'whatever');

  // for testing
  alert(localStorage.getItem('my_data'));

}

delete_data = function() {

  data = localStorage.clear();

  // for testing
  alert(localStorage.getItem('my_data'));

}

请参阅工作中的jsfiddle https://jsfiddle.net/joshmoto/j2y8o6rq/