我得到了这些变量
var moneycount = 0;
var b1 = document.createElement("IMG");
function update() {
document.getElementById('money').innerHTML = moneycount;
}
用于保存/加载的功能
function save() {
localStorage.setItem("moneycount", moneycount);
};
function load() {
moneycount = localStorage.getItem("moneycount");
moneycount = parseInt(moneycount);
update();
};
此功能按预期工作,但不会使用localStorage
更新function add() {
moneycount = moneycount + 1
if (moneycount >= 1) {
document.getElementById('badge1').appendChild(b1);
}
update();
}
加载localStorage后,似乎var moneycount = 0
仍为0,因为if (moneycount >= 1)
无效。加载localStorage后,document元素仍然显示更大的数字。关于如何存储我的add()
功能的任何想法?
编辑:
找到了一个临时解决方案,设置setInterval(save, 5000);
并添加<body onload="load();">
并在刷新时调用它。
答案 0 :(得分:0)
这是因为你没有更新localStorage而只是更新html元素:应该按照以下步骤进行:
var moneycount = 0;
var b1 = document.createElement("IMG");
function update() {
document.getElementById('money').innerHTML = moneycount;
localStorage.setItem("moneycount", moneycount);
}
function save() {
localStorage.setItem("moneycount", moneycount);
};
function add() {
localStorage.getItem("moneycount")+= 1;
if (moneycount >= 1) {
document.getElementById('badge1').appendChild(b1);
}
update();
}
答案 1 :(得分:-1)
原因是(如评论中所述)您的load()
函数也会保存localStorage而不是检索值。
您的load()
功能应如下所示:
function load() {
moneycount = localStorage.getItem("moneycount");
update();
};