web-dev-qa-db-fra.com

chrome.storage.sync non défini?

J'essaie d'utiliser chrome stockage dans une extension, via un content_script, mais je continue d'échouer sur

Uncaught TypeError: Cannot read property 'sync' of undefined 

Voici mon code:

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);
    });
}
42
Yossale

Vous devez ajouter l'autorisation "stockage" dans votre fichier manifest.json, à savoir:

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

Pour plus d'informations, voir: https://developer.chrome.com/extensions/storage

88
sfarbota

Recharger l'extension

J'ai fait ajouter la clé "permissions" dans mon fichier manifest mais j'ai quand même eu du mal à résoudre ce problème.

Après avoir ajouté l'autorisation: -

"permissions": [
    "storage"
 ]

Allez à votre extension en utilisant: chrome: // extensions/& cliquez sur le bouton Recharger: -

enter image description here

7
Rahul Singh

Si quelqu'un était confronté à ce problème sur Firefox, veuillez noter qu'il n'est pas encore pris en charge:

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

Pour mes besoins, il suffisait de remplacer chrome.storage.sync par chrome.storage.local.

En ce qui concerne l'état d'implémentation de Firefox, il peut être utile de regarder également ici de temps en temps:

http://arewewebextensionsyet.com/#storage

2
kabeleced