Обновление 2016:
Google Chrome выпустил API хранилища: http://developer.chrome.com/extensions/storage.html
Его довольно легко использовать, как и другие API Chrome, и вы можете использовать его из любого контекста страницы в 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);
});
Чтобы использовать его, убедитесь, что вы определили его в манифесте:
"permissions": [
"storage"
],
Существуют методы для «удаления», «очистки», «getBytesInUse» ипрослушиватель событий для прослушивания измененного хранилища "onChanged"
Использование собственного localStorage ( старый ответ от 2011 )
Сценарии содержимого выполняются в контексте веб-страниц, а не страниц расширения.Поэтому, если вы обращаетесь к localStorage из вашего ContentScript, это будет хранилище с этой веб-страницы, а не хранилище страниц расширения.
Теперь, чтобы ваш скрипт контента мог читать ваше хранилище расширений (где вы их установили)на странице настроек), вам нужно использовать расширение для передачи сообщений .
Первое, что вы делаете, - это скажите вашему контентному скрипту, чтобы он отправил запрос вашему расширению на получение некоторых данных, и этоданные могут быть вашими расширениями 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.
});
Youможет использовать API для этого, чтобы получить универсальные данные localStorage для вашего скрипта контента или, возможно, получить весь массив localStorage.
Я надеюсь, что это помогло решить вашу проблему.
Чтобы быть модным и родовым...
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.
});