我已经开发了本地 HTML5 / JavaScript Web应用程序,并且试图将数据存储在 localStorage 中。
如果不关闭浏览器就关闭webapp 选项卡,就没有问题:当我在新选项卡中重新打开webapp时,可以在localStorage中找到数据。
我在开发人员工具(F12)->应用程序中看到一个localStorage对象存在并且我的数据在那里。
如果我关闭浏览器,那么当我重新打开Web应用程序(也重新启动浏览器)时,我将失去一切。
但是我在开发人员工具(F12)->应用程序中看到localStorage对象存在,但是它是无效的。
我没有使用localStorage.clear()
指令,也没有删除我的js代码中的任何项目。
浏览器:我使用的是Google Chrome版本67.0.3396.99(正式版本)(64位)(在隐身模式下不可用)。
有什么主意吗?
答案 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/