Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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 Can';不要让chrome存储器加载任何内容_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript Can';不要让chrome存储器加载任何内容

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

我正在尝试将一个数组存储到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.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)}`));