我正在尝试将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的本地存储的工作原理了解甚少,因此很难解释这个问题。因此,任何帮助将不胜感激。
答案 0 :(得分:1)
形成JS对象时,您正在编写{storageid: storage}
。这里的storageid
仍然只是字符串"storageid"
。您要查找的是变量本身的值。
{[storageid]: storage}
将变量storageid
解释为其值。
在构建Chrome插件时并不重要,但我认为值得指出的是,这是JS的一种更现代的语法,在IE中不起作用。在那里,解决方案仍然必须存在。
var storageObj = {}
storageObj[storageid] = storage