我正在尝试为Chrome扩展程序创建一个选项页面。第一部分将值设置为本地存储。检查是否为true,取消选中false。如果用户在其他时间回来,则第二部分应该更新复选框,并且设置将应用于复选框。
我的问题是,当用户刷新或关闭窗口并返回时,永远不会检查复选框,但本地存储将更改为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");
}
答案 0 :(得分: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");
}
答案 1 :(得分:3)
您需要在JavaScript中将checked attribute实际设置为true。
使用:
document.getElementById("stat").checked = true;
而不是:
document.getElementById("stat").checked;
答案 2 :(得分:2)
我假设您说您的存储空间正常,但您需要使用Javascript检查该复选框。在这种情况下,请使用:
document.getElementById("stat").checked=true;
而不是
document.getElementById("stat").checked;
参考: http://www.w3schools.com/jsref/prop_checkbox_checked.asp