在构建我的 Google Chrome 扩展程序时,我遇到了存储其设置的问题。我创建了一个设置页面,在用户单击 browserAction 图标后在选项卡中打开该页面。此页面具有用于设置我的扩展程序的 UI,例如,它可以将设置存储到 localStore。但是我的扩展程序的后台页面(应该读取这些设置)没有任何 localStore。
我应该将扩展设置存储在哪里,以便可以从浏览器中的任何位置访问并“永久”存储?
谢谢你的帮助...
在构建我的 Google Chrome 扩展程序时,我遇到了存储其设置的问题。我创建了一个设置页面,在用户单击 browserAction 图标后在选项卡中打开该页面。此页面具有用于设置我的扩展程序的 UI,例如,它可以将设置存储到 localStore。但是我的扩展程序的后台页面(应该读取这些设置)没有任何 localStore。
我应该将扩展设置存储在哪里,以便可以从浏览器中的任何位置访问并“永久”存储?
谢谢你的帮助...
如果您想使用您的后台页面临时存储数据:
// 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];
}
}
}