Mise à jour 2016 :
Google Chrome a publié l'API de stockage : https://developer.chrome.com/docs/extensions/reference/storage/
Elle est assez facile à utiliser comme les autres API de 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 les changements de stockage "onChanged".
Utilisation du localStorage natif ( ancienne réponse de 2011 )
Les scripts de contenu s'exécutent dans le contexte des pages web, et non des pages d'extension. Par conséquent, si vous accédez à localStorage depuis votre script de contenu, il s'agira du stockage de cette page Web, et non du stockage de la page d'extension.
Maintenant, pour permettre à votre contenu script de lire votre stockage d'extension (où vous les avez définis à partir de votre page d'options), vous devez utiliser l'extension passage des messages .
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 certaines données, et ces données peuvent être le localStorage de votre extension :
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 de localStorage à votre contenu script, ou peut-être, obtenir le tableau localStorage entier.
J'espère que cela a aidé à résoudre votre problème.
Pour être fantaisiste 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.
});
1 votes
En rapport : stackoverflow.com/questions/3033829/
0 votes
En rapport : stackoverflow.com/questions/4224039/
0 votes
En rapport : stackoverflow.com/questions/39768005/