0

これは、chrome 拡張機能の popup.js です。

 function getlink(){

    console.log(document.getElementById("linkify").value);
    if(document.getElementById("linkify").value == "on")
    {
            localStorage.setItem("linkify",false);

            document.getElementById("linkify").innerHTML = "Get links - off";
            document.getElementById("linkify").value = "off";
            console.log(document.getElementById("linkify").value);
            chrome.extension.sendRequest({ msg: "linkify"});

    }
    else if(document.getElementById("linkify").value == "off")
    {
        localStorage.setItem("linkify",true);
        console.log("Hello!");
        document.getElementById("linkify").innerHTML = "Get links - on";
        document.getElementById("linkify").value = "on";
        chrome.extension.sendRequest({ msg: "linkify"});

    }
    }

    $(document).ready(function (){


    if(localStorage.getItem("linkify"))
    {
        document.getElementById("linkify").innerHTML = "Get links - on";
        document.getElementById("linkify").value = "on";
    }
    $("#linkify").click(function() {
      getlink();
    });
    });

基本的に、私が欲しい機能はこれです: オンとオフを切り替えることができる拡張機能のボタンです。切り替えると、そのテキストが変更され、localStorage に保存されている値も変更されます。

ただし、トグルは正常に機能しますが、これは発生するバグです。

ボタンをオフにすると、リンクをオフにしてポップアップを終了します。ポップアップを再度開くと、ボタンの状態が「オン」に戻ります。その状態を維持していません。

4

2 に答える 2

1

問題は、ローカル ストレージの使用方法です。ローカル ストレージはすべてを string として格納します

だから基本的に:

localStorage.setItem("foo", false)
localStorage.getItem("foo") // returns "false"

if(localStorage.getItem("foo")) {
  console.log("bar")
} else {
  console.log("bing")
}
// Logs bar
于 2012-11-28T02:22:22.613 に答える
0

if(JSON.parse(localStorage.getItem("linkify"))) を使用します

于 2012-11-28T22:38:56.883 に答える