在Firefox上遇到localStorage问题

时间:2015-11-19 11:40:59

标签: javascript html5 firefox local-storage

我想使用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;
    }
  }       

谢谢!

2 个答案:

答案 0 :(得分:0)

我遇到了一些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

答案 1 :(得分:0)

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