在我的扩展程序中,我按以下格式设置了某些设置为chrome.storage.local
的域:
{
domainSettings: {
google.com.au: {
setting: "someSetting",
anotherSetting: "somethingElse"
},
stackoverflow.com: {
setting: "someOtherSetting"
anotherSetting: "somethingElseAswell"
}
}
otherSettings: {
...
}
}
不是使用chrome.storage.local.get("domainSettings", function(response){})
来获取每个域的设置,而只是获得我需要的设置,我怎样才能获得google.com.au
的设置。
当我需要的只是一个时,似乎没有必要获得数百或数千倍的信息。
干杯。
答案 0 :(得分:1)
最简单的改变是使用更扁平的数据结构。
{
"domainSettings:google.com.au": {
setting: "someSetting",
anotherSetting: "somethingElse"
},
"domainSettings:stackoverflow.com": {
setting: "someOtherSetting"
anotherSetting: "somethingElseAswell"
},
...
}
答案 1 :(得分:0)
您可以随时使用正确的数据库,因为IndexedDB会向Chrome扩展程序公开。
或者,您可以放弃" domainSettings"从层次结构中,只使用主机名作为键。这完全没有错:
function set(hostname, options, callback){
var data = {};
data[hostname] = options;
// Should be no need for deep copy, as chrome.storage will serialize
chrome.storage.local.set(data, callback);
}
function get(hostname, callback){
chrome.storage.local.get(hostname, function(result){
callback(result[hostname]);
});
}