Aktualizacja 2016:
Google Chrome udostępnił interfejs API do przechowywania danych: http://developer.chrome.com/extensions/storage.html
Jest dość łatwy w użyciu, podobnie jak inne interfejsy API Chrome i możesz go używać z dowolnego kontekstu strony w 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);
});
Aby z niego skorzystać, upewnij się, że zdefiniowałeś go w manifeście:
"permissions": [
"storage"
],
Istnieją metody „usuwania”, „czyszczenia”, „getBytesInUse” i nasłuchiwania zdarzeń do nasłuchiwania zmienionej pamięci „onChanged”
Korzystanie z natywnego localStorage ( stara odpowiedź z 2011 r. )
Skrypty zawartości działają w kontekście stron internetowych, a nie stron rozszerzeń. Dlatego jeśli uzyskujesz dostęp do localStorage ze swojego skryptu contentcript, będzie to pamięć z tej strony internetowej, a nie pamięć strony rozszerzenia.
Teraz, aby pozwolić skryptowi zawartości na odczytanie pamięci rozszerzeń (gdzie ustawiasz je na stronie opcji), musisz użyć przekazywania wiadomości rozszerzenia .
Pierwszą rzeczą, którą musisz zrobić, jest poinformowanie skryptu zawartości, aby wysłał żądanie do twojego rozszerzenia w celu pobrania niektórych danych, a te dane mogą być twoim rozszerzeniem localStorage:
contentcript.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.
});
Możesz zastosować interfejs API, aby uzyskać ogólne dane localStorage do skryptu zawartości lub być może pobrać całą tablicę localStorage.
Mam nadzieję, że pomogło to rozwiązać Twój problem.
Aby być fantazyjnym i ogólnym ...
contentcript.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.
});