Javascript 本地存储*有时*无法在页面之间设置或持久化变量
我有一个使用localStorage的简单代码,它将运行成本总额从注册页面转移到支付页面。这对大约95%的用户来说效果很好 但有时该变量无法持久保存到付款页面,导致在不同的实例中出现NULL和NAN。发生这种情况时,开发人员工具将在注册页面(设置变量的页面)上正确显示在本地存储中设置的变量,但在支付页面上根本不会显示在本地存储中设置的变量 我在两次Chrome安装中尝试了这一点,在不同的MBPs上使用相同的隐私设置(尽管扩展不相同)。它在其中一个页面上运行良好,而在另一个页面上无法在页面之间传输 我在Google、Stack Overflow或其他任何地方都找不到关于这种不一致问题的任何信息。暗示 以下是注册页面中非常简单的代码:Javascript 本地存储*有时*无法在页面之间设置或持久化变量,javascript,html,google-chrome,local-storage,persistent-storage,Javascript,Html,Google Chrome,Local Storage,Persistent Storage,我有一个使用localStorage的简单代码,它将运行成本总额从注册页面转移到支付页面。这对大约95%的用户来说效果很好 但有时该变量无法持久保存到付款页面,导致在不同的实例中出现NULL和NAN。发生这种情况时,开发人员工具将在注册页面(设置变量的页面)上正确显示在本地存储中设置的变量,但在支付页面上根本不会显示在本地存储中设置的变量 我在两次Chrome安装中尝试了这一点,在不同的MBPs上使用相同的隐私设置(尽管扩展不相同)。它在其中一个页面上运行良好,而在另一个页面上无法在页面之间传输
//clear local storage when loading the registration page
function clearLocal(){
localStorage.clear();
}
//calculate total
function calculate() {
//calculate total
var el, i = 0;
var total = 0;
while(el = document.getElementsByName("class")[i++]) {
if(el.checked) { total= total + Number(el.id);}
}//end while
//store total in local storage for use on payment page
localStorage.setItem("paymentTotal",total);
}
你是怎么进入下一页的?您是否通过
location.href
更改来执行此操作?一个
点击?
提交?触发localstorage写入的是什么?单击“提交”按钮时,通过formhandler进入下一页。表单提交或将用户发送到下一页/付款页时从未出现问题。每次在注册页上更改JS变量时,选中或取消选中复选框时,都会触发localStorage写入。LS写入是同一函数的一部分。