我正在尝试通过content_script在扩展程序中使用chrome存储,但我一直在失败
Uncaught TypeError: Cannot read property 'sync' of undefined
这是我的代码:
testChromeStorage();
function testChromeStorage() {
console.log("Saving");
chrome.storage.sync.set({'value': theValue}, function() {
message('Settings saved');
});
chrome.storage.sync.get("value", function (retVal) {
console.log("Got it? " + retVal.value);
});
}
答案 0 :(得分:83)
您必须在manifest.json文件中添加“storage”权限,即:
...
"permissions": [
"storage"
],
...
答案 1 :(得分:5)
重新加载附加信息
我在manifest
文件中添加了“权限”键,但仍然难以解决这个问题。
添加权限后: -
"permissions": [
"storage"
]
转到您的扩展程序:chrome:// extensions /&单击“重新加载”按钮: -
答案 2 :(得分:2)
如果有人在Firefox上遇到此问题,请注意,它尚不支持:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage#Chrome_incompatibilities
就我的目的而言,将chrome.storage.sync
替换为chrome.storage.local
就足够了。
关于Firefox实施状态,可能还需要不时查看:
答案 3 :(得分:0)
重启开发服务器
尽管添加了权限并重新加载了扩展程序,但我的同步仍然未定义。
结果我需要重新启动开发服务器才能获取新的清单。 这是有道理的,因为这个文件没有被监视。 呸!
答案 4 :(得分:-1)
请参阅https://developer.chrome.com/extensions/content_scripts.html:
但是,内容脚本有一些限制。他们不能:
使用chrome。 API(chrome.extension的部分除外)*
(强调补充)