Mise à jour 2016:
Google Chrome a publié l'API de stockage: http://developer.chrome.com/extensions/storage.html
Il est assez facile à utiliser comme les autres API Chrome et vous pouvez l'utiliser à partir de n'importe quel contexte de page dans Chrome.
// Save it using the Chrome extension storage API.
chrome.storage.sync.set({'foo': 'hello', 'bar': 'hi'}, function() {
console.log('Settings saved');
});
// Read it using the storage API
chrome.storage.sync.get(['foo', 'bar'], function(items) {
message('Settings retrieved', items);
});
Pour l'utiliser, assurez-vous de le définir dans le manifeste:
"permissions": [
"storage"
],
Il existe des méthodes pour "supprimer", "effacer", "getBytesInUse" et un écouteur d'événements pour écouter le stockage modifié "onChanged"
Utilisation de localStorage natif ( ancienne réponse de 2011 )
Les scripts de contenu s'exécutent dans le contexte de pages Web, pas de pages d'extension. Par conséquent, si vous accédez à localStorage à partir de votre contentscript, ce sera le stockage de cette page Web, pas le stockage de la page d'extension.
Maintenant, pour permettre à votre script de contenu de lire votre stockage d'extension (où vous les définissez à partir de votre page d'options), vous devez utiliser la transmission de message d' extension .
La première chose que vous faites est de dire à votre script de contenu d'envoyer une requête à votre extension pour récupérer des données, et ces données peuvent être votre extension localStorage:
contentscript.js
chrome.runtime.sendMessage({method: "getStatus"}, function(response) {
console.log(response.status);
});
background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.method == "getStatus")
sendResponse({status: localStorage['status']});
else
sendResponse({}); // snub them.
});
Vous pouvez faire une API autour de cela pour obtenir des données génériques localStorage dans votre script de contenu, ou peut-être, obtenir l'ensemble du tableau localStorage.
J'espère que cela a aidé à résoudre votre problème.
Pour être sophistiqué et générique ...
contentscript.js
chrome.runtime.sendMessage({method: "getLocalStorage", key: "status"}, function(response) {
console.log(response.data);
});
background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.method == "getLocalStorage")
sendResponse({data: localStorage[request.key]});
else
sendResponse({}); // snub them.
});