2012-07-27 45 views
3

我想创建一个Chrome扩展的选项页面。第一部分将值设置为本地存储。检查是否为true并取消选中false。第二部分应该是更新复选框,如果用户在其他时间回来并且设置将应用于复选框。记住与localstorage复选框onclick

我的问题是,当用户刷新或关闭窗口并返回时,复选框永远不会检查,但本地存储将更改为true或false。我该如何设置,以便用户可以选中此框,并在用户稍后返回或刷新页面时保留该框。

setStatus = document.getElementById('stat'); 
    setStatus.onclick = function() { 
     if(document.getElementById('stat').checked) { 
      localStorage.setItem('stat', "true"); 
     } else { 
      localStorage.setItem('stat', "false"); 
     } 
    } 


getStstus = localStorage.getItem('stat'); 
    if (getStstus == "true") { 
     console.log("its checked"); 
     document.getElementById("stat").checked; 
    } else { 
     console.log("its not checked"); 
    } 

回答

5

更改:

document.getElementById("stat").checked; 

要:

document.getElementById("stat").setAttribute('checked','checked'); 

会解决这个问题。自从添加.checked时,实际上只是检查复选框是否被检查。

你也可以这样做:

document.getElementById("stat").checked=true; 

哪个做同样的事情。


请注意,您需要更改第二document.getElementById("stat").checked

getStstus = localStorage.getItem('stat'); 
    if (getStstus == "true") { 
     console.log("its checked"); 
     document.getElementById("stat").setAttribute('checked','checked'); 
    } else { 
     console.log("its not checked"); 
    }​ 

JsFiddle Example

3

你需要居然checked attribute设置为true,在JavaScript中。

用途:

document.getElementById("stat").checked = true; 

相反的:

document.getElementById("stat").checked; 

Try it!