Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Chrome本地存储中使用动态键获取和设置?_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 如何在Chrome本地存储中使用动态键获取和设置?

Javascript 如何在Chrome本地存储中使用动态键获取和设置?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,如果我在我的Chrome扩展中执行类似的操作,它可以正常工作: chrome.storage.local.set({"Foo1": dataValue}); 这很好: chrome.storage.local.get("Foo1", callback); 但当我试图抽象这些信息函数,以便在不同情况下使用不同的键名时: function saveLocalData(dataKey, dataValue){ chrome.storage.local.set({dataKey: dataV

如果我在我的Chrome扩展中执行类似的操作,它可以正常工作:

chrome.storage.local.set({"Foo1": dataValue});
这很好:

chrome.storage.local.get("Foo1", callback);
但当我试图抽象这些信息函数,以便在不同情况下使用不同的键名时:

function saveLocalData(dataKey, dataValue){
    chrome.storage.local.set({dataKey: dataValue});
}
saveLocalData("Foo1", "hello foo");
…然后是:

function getLocalData(dataKey, callback){
    chrome.storage.local.get(dataKey, callback);
}
getLocalData(dataKey, myCallbackFunction);
…保存和获取似乎都成功了,但在检索时,我似乎只有一个空对象。我在chrome dev tools中浏览了我的代码,检查了返回的[Object]——它不是空的——但它似乎是空的、无用的,如果它的内部有我的数据,我似乎找不到它

我甚至尝试过这个,但没有更好的结果:

function getLocalData(dataKey, callback){
    dataKey = "\"" + dataKey + "\"";
    chrome.storage.local.get(dataKey, callback);
}

function saveLocalData(dataKey, dataValue){
    dataKey = "\"" + dataKey + "\"";
    chrome.storage.local.set({dataKey: dataValue});
}
必须有某种方法将本地存储getter和setter抽象到函数中,以便我可以传入一个键名和一个值(要保存),然后通过传入正确的键名检索所需的值。Cookies是这样工作的,但是本地存储有一些我不理解的巫毒。我只对
getLocalData()
使用回调函数,因为在setter中不需要回调。我的回调正在工作-回调函数被输入,我得到了看似空的[Object]——它不仅仅是空的


请提供帮助,并提前感谢。

如果不使用ES6中新增的计算键,变量就不能用作键


console.log({[“key”+1]:“value”+1})
讲得通,丹尼尔,谢谢。尽管这似乎是一个毫无意义的限制,迫使人们采取笨拙的变通办法。