Firefox上的localStorage出现问题

Having trouble with localStorage on Firefox

本文关键字:问题 localStorage 上的 Firefox      更新时间:2023-09-26

我想将复选框的状态存储在localStorage中,这样,如果选中了复选框,则在刷新页面后它将保持选中状态。然而,似乎存在一个问题:复选框将始终被选中,即使它不是。我检查了localStorage,发现状态存储正确,但当您刷新页面时,数据无条件切换为"true"。这是我的密码。

单击复选框时调用的函数:

  function save_data(box){
          var ls = localStorage;
          if(box.checked == true){
            ls.setItem("checkbox_val","true");
          }
          else{
            ls.setItem("checkbox_val","false");
          }
      }

加载窗口时调用的函数:

window.onload = function(){
    var ls = localStorage;
    console.log(ls);
    var checkbox = document.getElementById("privacy_checkbox");
    if(ls.getItem("checkbox_val") == "true"){
      checkbox.checked = true;
    }
    else{
      checkbox.checked = false;
    }
  }       

谢谢!

我在Firefox自动完成方面遇到了一些问题,这可能也是你的问题。

为了防止FF自动填充表单值,您可以在元素或表单上添加属性autocomplete="off",如下所示:

<form method="post" action="/form"  autocomplete="off">
[...]
</form>

有关更多信息,请参阅本文:https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

你能发送调用save_data()的代码吗?根据你的代码,它应该可以正常工作。但是,在save_data()中发送的对象似乎没有.checked属性。