chrome.storage.sync undefined?

时间:2013-08-01 15:21:05

标签: google-chrome-extension google-chrome-storage

我正在尝试通过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);
    });
}

5 个答案:

答案 0 :(得分:83)

您必须在manifest.json文件中添加“storage”权限,即:

...
  "permissions": [
    "storage"
  ],
...

有关详细信息,请参阅:https://developer.chrome.com/extensions/storage

答案 1 :(得分:5)

重新加载附加信息

我在manifest文件中添加了“权限”键,但仍然难以解决这个问题。

添加权限后: -

"permissions": [
    "storage"
 ]

转到您的扩展程序:chrome:// extensions /&单击“重新加载”按钮: -

enter image description here

答案 2 :(得分:2)

如果有人在Fi​​refox上遇到此问题,请注意,它尚不支持:

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage#Chrome_incompatibilities

就我的目的而言,将chrome.storage.sync替换为chrome.storage.local就足够了。

关于Firefox实施状态,可能还需要不时查看:

http://arewewebextensionsyet.com/#storage

答案 3 :(得分:0)

重启开发服务器

尽管添加了权限并重新加载了扩展程序,但我的同步仍然未定义。

结果我需要重新启动开发服务器才能获取新的清单。 这是有道理的,因为这个文件没有被监视。 呸!

答案 4 :(得分:-1)

请参阅https://developer.chrome.com/extensions/content_scripts.html

  

但是,内容脚本有一些限制。他们不能:

     

使用chrome。 API(chrome.extension的部分除外)*

(强调补充)