0

我有下面的代码块表现真实意外:Chrome.storage附加价值为对象

//Where url and info are strings 
function addURL(url, info){ 
    chrome.storage.sync.get("data", function(items) { 
     items[url] = info; 

     chrome.storage.sync.set({"data" : items}, function() {}); 
    }); 
} 

我的目标是采取“数据”键值对出入库,增加一个新的指数用url的键和分钟的值对该对象,然后用新的值替换以前的'数据'值。

相反,我创建一个嵌套的结构,其中该代码通过正确地执行了第一次,但在随后的增加有成为嵌套的“数据”块对象内部,如下所示:

data 
    url3 -> info3 
    data 
    url2 -> info2 
     data 
     url1 -> info1 

而我期望是

data 
    url1 -> info1 
    url2 -> info2 
    url3 -> info3 

回答

1

如果您登录或检查传递给你的回调函数的参数items的内容,你会发现它的格式我想:{ data: {...} }。所以你只需要做:

items.data[url] = info; 

    chrome.storage.sync.set(items, function() {});