Javascript Can';不要让chrome存储器加载任何内容
我正在尝试将一个数组存储到chrome存储中以进行扩展,但似乎没有存储任何内容。 我正在用这段代码(在我的content.js中)进行测试 以及日志:Javascript Can';不要让chrome存储器加载任何内容,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在尝试将一个数组存储到chrome存储中以进行扩展,但似乎没有存储任何内容。 我正在用这段代码(在我的content.js中)进行测试 以及日志: to save: myd {"myp":{"orange":"mure","voiture":"rapide"}} content.js:147 Settings saved content.js:154 items: {} 我在清单文件中有“存储”权限。 有什么我忘了的吗 感谢chrome.storage.sync.set和chrome.st
to save: myd {"myp":{"orange":"mure","voiture":"rapide"}}
content.js:147 Settings saved
content.js:154 items: {}
我在清单文件中有“存储”权限。
有什么我忘了的吗
感谢
chrome.storage.sync.set
和chrome.storage.sync.get
期待一个对象,他们使用该对象的属性作为存储的键
调用chrome.storage.sync.get
时,需要一个名为domain
的属性对象,如果当前未存储任何内容,则该值将是默认值
尝试:
但是,看起来您正在使用domain
作为参数,因此:
因此:
chrome.storage.sync.set
和chrome.storage.sync.get
需要一个对象,它们使用该对象的属性作为存储的键
调用chrome.storage.sync.get
时,需要一个名为domain
的属性对象,如果当前未存储任何内容,则该值将是默认值
尝试:
但是,看起来您正在使用domain
作为参数,因此:
因此:
看到你的建议,我尝试了一个“const-domain”,但没有成功,然后我直接用“myd”替换了domain,它成功了(用我的代码)。我将修改我的数组以包含域,因为它似乎(奇怪地)不可能使用变量作为“主键”。。。无论如何,谢谢你的帮助。经过一些反思,我终于得到了它,也许你不应该修改我在get和set中声明函数的方式,因为这不是问题的原因,但是谢谢。@entertoize这些示例是为了说明问题,而不是复制粘贴插入式代码。我不知道您是如何声明变量的,但最佳实践(如果您
'use strict';
)是第一次总是使用var
、let
(本地范围)或const
(无法重新分配)声明变量,所以我在我的示例中就是这样做的。回调函数被简化,因为我很懒;-)在我自己的代码中,我与wait
一起使用,以完全避免回调。事实上,很抱歉,我错过了一些英语词汇,我的意思是我不理解符号“()=>console.log('Settings saved')”,我花了一些时间才明白问题不是来自于…@entertoize啊-这是一个错误。学习如何使用它们是值得的,特别是在一个你不关心IE支持的Chrome扩展中。看到你的建议,我尝试了一个“const域”,但没有成功,然后我直接用“myd”替换了域,它成功了(用我的代码)。我将修改我的数组以包含域,因为它似乎(奇怪地)不可能使用变量作为“主键”。。。无论如何,谢谢你的帮助。经过一些反思,我终于得到了它,也许你不应该修改我在get和set中声明函数的方式,因为这不是问题的原因,但是谢谢。@entertoize这些示例是为了说明问题,而不是复制粘贴插入式代码。我不知道您是如何声明变量的,但最佳实践(如果您'use strict';
)是第一次总是使用var
、let
(本地范围)或const
(无法重新分配)声明变量,所以我在我的示例中就是这样做的。回调函数被简化,因为我很懒;-)在我自己的代码中,我与wait
一起使用,以完全避免回调。事实上,很抱歉,我错过了一些英语词汇,我的意思是我不理解符号“()=>console.log('Settings saved')”,我花了一些时间才明白问题不是来自于…@entertoize啊-这是一个错误。学习如何使用它们是值得的,尤其是在不关心IE支持的Chrome扩展中。
to save: myd {"myp":{"orange":"mure","voiture":"rapide"}}
content.js:147 Settings saved
content.js:154 items: {}
chrome.storage.sync.get( { domain: [] }, function(items)
{
console.log("items: "+JSON.stringify(items));
}
const domain = "myd";
// Store
let store = {};
store[domain] = datas;
chrome.storage.sync.set(store, () => console.log('Settings saved'));
// Retrieve
let key = {};
key[domain] = []; // Default
chrome.storage.sync.get(key, items =>
console.log(`items: ${JSON.stringify(items)}`));