我正在尝试将一个变量保存在local-Storage中但是在不同的事件中显示两次(onload and onclick).
我认为我做的一切都很好,但是当上传到服务器变量的脚本是NaN
而不是值。
在localhost上工作,因为变量值已设置为0。 几次尝试创建适当的(至少我认为如此)代码。
当我将变量的值直接更改为浏览器存储时,
从NaN
到0
其他脚本运行正常。
以下是我在开头只设置一次变量值的解决方案。不幸的是,每次重新加载时变量都会变为0。我用所有这些线条来圈养自己。
需要比我更有经验和新面貌的人。我这么多次改变了这段代码,这就是为什么我真的不确定我是从什么开始的。
console.log(variable_display); //(1)
if (isNaN(variable_display)===true) {
var variable_display=0;
}
localStorage.setItem('variable_display', variable_display);
console.log(variable_display); //(2)
moneybox_display_string = localStorage.getItem('variable_display');
console.log(variable_display); //(3)
variable_display= parseFloat(moneybox_display_string);
console.log(variable_display); (4)
window.onload = start;
function start(){
document.getElementById("element").innerHTML=variable_display.toFixed(2);
console.log(variable_display); //(5)
}
此部分分配给文件底部的onclick = location.reload()。它还增加了0.1的固有价值。
console.log(variable_display); //(6)
localStorage.setItem('variable_display', variable_display);
console.log(variable_display); //(7)
document.getElementById("element").innerHTML=variable_display.toFixed(2);
这就是var在这些步骤中的样子: 在加载/重新加载时:
(1) undefined
(2) 0
(3) 0
(4) 0
(5) 0
onclick后的那两个节目:
(6) 0.1
(7) 0.1
编辑:
我试图显示变量onload
,更新它onclick
并显示。
moneybox_display1 = localStorage.getItem('variable_display');
variable_display= parseFloat(moneybox_display1);
function start(){
document.getElementById("element").innerHTML= variable_display.toFixed(2);
}
localStorage.setItem('variable_display', variable_display);
document.getElementById("element").innerHTML= variable_display.toFixed(2);
这个代码对我来说没什么用,如果没有那个变量值在开始时是NaN而我无法改变它。