3

Google Chrome 拡張機能をビルドするときに、その設定を保存する際に問題が発生します。ユーザーが browserAction アイコンをクリックした後にタブで開かれる設定ページを作成しました。このページには、拡張機能をセットアップするための UI があり、たとえば、設定を localStore に保存できます。しかし、これらの設定を読み取る拡張機能のバックグラウンド ページには、localStore がありません。

ブラウザのどこからでもアクセスでき、「永久に」保存されるように、拡張機能の設定をどこに保存すればよいですか?

助けてくれてありがとう...

4

1 に答える 1

1

backgroundpage を使用して一時的にデータを保存する場合:

// in your backgroundpage
// Set a value
window['yourvalue']=123;
// Get a value
alert(window['yourvalue']);

// in any other page (options/popup/message/whatever)
var bg=chrome.extension.getBackgroundPage();
// Set a value
bg['yourvalue']=123;
// Get a value
alert(bg['yourvalue']);

私は拡張機能で常にこれらの関数を使用します。

var bg=chrome.extension.getBackgroundPage();
// Save data
function save(key, val) {
    bg[key]=val;
    var data={};
    var tmp=localStorage.getItem("MyPlugin");

    if(tmp!=null&&tmp.indexOf("{")>-1&&tmp.indexOf("}")>-1)
    {
        data=JSON.parse(tmp);
    }
    data[key]=val;
    localStorage.setItem("MyPlugin", JSON.stringify(data));
}

// Restore the data
var data={};
var tmp=localStorage.getItem("MyPlugin");

if(tmp!=null&&tmp.indexOf("{")>-1&&tmp.indexOf("}")>-1)
{
    data=JSON.parse(tmp);
    for (var key in data) {
        if (data.hasOwnProperty(key)) {
            bg[key]=data[key];
        }
    }
}
于 2012-06-07T02:55:33.703 に答える