chrome.storage.local编写密钥的问题

时间:2019-05-29 20:27:31

标签: javascript google-chrome-extension

我正在尝试将chrome的存储集成到我的扩展程序中。而且,一旦写入数据,我就很难掌握数据的存储方式,因为我尝试的任何方法似乎都无效。 我想做的就是用一个特定的键存储一个对象。但是该密钥是在运行时动态生成的。

所以到目前为止我有这样的事情。

 let storage = {};
storage["status"] = "no status";
chrome.storage.local.set(storage,function(){

});

当我这样做时,密钥会自动变为“存储”,但我不想这样做。因为我希望键每次都唯一。所以理想情况下,我要做的就是这个

let storageid = generateid();//generate unique storage id
let storage = {};
storage["status"] = "no status";
chrome.storage.local.set({storageid: storage},function(){

});

但是即使在那种情况下,键仍然是“ storageid”,并不一定是变量storageid中保存的值。 由于我对chrome的本地存储的工作原理了解甚少,因此很难解释这个问题。因此,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

形成JS对象时,您正在编写{storageid: storage}。这里的storageid仍然只是字符串"storageid"。您要查找的是变量本身的值。 {[storageid]: storage}将变量storageid解释为其值。

在构建Chrome插件时并不重要,但我认为值得指出的是,这是JS的一种更现代的语法,在IE中不起作用。在那里,解决方案仍然必须存在。

var storageObj = {}
storageObj[storageid] = storage