我试图将数据对象保存在chrome sync存储中,然后检索它,但是get()函数总是返回一个空对象。我使用的代码是
function storeUserPrefs() {
var key='myKey', testPrefs = {'val': 10};
chrome.storage.sync.set({key: testPrefs}, function() {console.log('Saved', key, testPrefs);});
}
function getUserPrefs() {
chrome.storage.sync.get('myKey', function (obj) {
console.log('myKey', obj);
});
}
有人能告诉我我做错了什么吗?
7条答案
按热度按时间b0zn9rqh1#
问题出在
chrome.storage.sync.set({key: testPrefs}
您的数据存储为
因此,您的代码
chrome.storage.sync.get('myKey')
返回undefined\empty object。方案一
使用字符串
"key"
作为密钥或
方案二
通过
"myKey"
键设置数据。chrome.storage.sync
是永久存储API,在进一步测试之前使用chrome.storage.sync.clear查看变化参考资料
编辑1
使用此代码在www.example.com中设置变量值Chrome.storage
它生成以下输出
5gfr0r5j2#
一种更花哨的方法来做这件事,它也处理错误:
7eumitmz3#
你可以在保存时使用[key]强制计算变量key。这种方式很容易动态设置关键点。希望能帮上忙。
3yhwsihp4#
由于chrome.storage.sync可以存储JS对象,你可以这样做:
s2j5cfk05#
uqdfh47h6#
通过使用WebExtension browser API Polyfill,您可以使用promises,也可以使用TS和下面的代码来设置chrome的同步并获得同步
wqnecbli7#
ECMA现在有了新的语法来简化你的例子
所以现在要摆脱对象名,你只需要析构参数对象,它将解包它。Hennce看看这个语法: