我正在尝试将 Chrome 的存储集成到我的扩展中。而且我很难掌握数据写入后的存储方式,因为我尝试的任何方法似乎都不起作用。 我想要做的是用特定的键存储一个对象。但该 key 是在运行时动态生成的。
所以到目前为止我有类似的东西。
let storage = {};
storage["status"] = "no status";
chrome.storage.local.set(storage,function(){
});
当我这样做时,键会自动变成“存储”,但我不想这样做。因为我希望 key 每次都是唯一的。所以理想情况下我想做的是这个
let storageid = generateid();//generate unique storage id
let storage = {};
storage["status"] = "no status";
chrome.storage.local.set({storageid: storage},function(){
});
但即使在这种情况下,键仍然是“storageid”,不一定是变量 storageid 中保存的值。 由于我对 chrome 本地存储的工作原理知之甚少,解释这个问题有点棘手。因此,任何帮助将不胜感激。
最佳答案
当您形成 JS 对象时,您正在编写 {storageid: storage}
。这里的storageid
仍然只是字符串“storageid”
。您正在寻找的是变量本身的值。
{[storageid]: storage}
将变量 storageid
解释为其值。
这在构建 Chrome 插件时并不重要,但我认为值得指出的是,这是一种更现代的 JS 语法,在 IE 中不起作用。在那里,解决方案仍然必须存在。
var storageObj = {}
storageObj[storageid] = storage
关于javascript - chrome.storage.local 写入 key 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56368041/