Chrome扩展程序商店

时间:2012-06-03 12:16:49

标签: javascript google-chrome-extension local-storage

在构建我的Google Chrome扩展程序时,我遇到了存储设置的问题。我创建了一个设置页面,在用户单击browserAction图标后在选项卡中打开。此页面具有用于设置扩展的UI,例如,它可以将设置存储到localStore中。但我的扩展程序的后台页面(应该读取这些设置)没有任何localStore。

我应该在哪里存储扩展程序设置,以便可以从浏览器的任何位置访问并“永久”存储?

感谢您的帮助......

1 个答案:

答案 0 :(得分:1)

如果您想使用背景页暂时存储数据:

// 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];
        }
    }
}
相关问题