记住带有localstorage onclick的复选框

Mr.*_*1.0 3 javascript html5 local-storage

我正在尝试为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");
    }
Run Code Online (Sandbox Code Playgroud)

Sha*_*313 5

更改:

document.getElementById("stat").checked;
Run Code Online (Sandbox Code Playgroud)

至:

document.getElementById("stat").setAttribute('checked','checked');
Run Code Online (Sandbox Code Playgroud)

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

你也可以这样做:

document.getElementById("stat").checked=true;   
Run Code Online (Sandbox Code Playgroud)

哪个做同样的事情.


请注意,您需要更改第二个 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");
    }?
Run Code Online (Sandbox Code Playgroud)

JsFiddle示例