3

Chrome拡張機能のオプションページを作成しようとしています。最初の部分は、値をローカルストレージに設定します。trueをチェックし、falseをチェック解除します。2番目の部分は、ユーザーが別のときに戻ってきた場合にチェックボックスを更新することになっており、設定がチェックボックスに適用されます。

私の問題は、ユーザーがウィンドウを更新または閉じて戻ってきたときにチェックボックスがオンにならないことですが、ローカルストレージは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");
    }
4

3 に答える 3

5

変化:

document.getElementById("stat").checked;

に:

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

これを修正します。を追加するとき.checked、それは実際にはチェックボックスがチェックされているかどうかをチェックするだけです。

次のこともできます。

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

これは同じことをします。


2番目 を変更する必要があることに注意してください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の例

于 2012-07-27T00:40:12.307 に答える
3

JavaScriptでは実際にchecked属性をtrueに設定する必要があります。

使用する:

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

それ以外の:

document.getElementById("stat").checked;

それを試してみてください!

于 2012-07-27T00:39:46.283 に答える
2

ストレージが機能していると言っていると思いますが、Javascriptを使用してチェックボックスをオンにする必要があります。その場合は、次を使用します。

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

それ以外の

document.getElementById("stat").checked;

参照: http ://www.w3schools.com/jsref/prop_checkbox_checked.asp

于 2012-07-27T00:39:30.603 に答える