Оновлення 2016:
Google Chrome випустив API зберігання: http://developer.chrome.com/extensions/storage.html
Це досить простий у використанні, як і інші API API, і ви можете використовувати його з будь-якого контексту сторінки в 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 зі свого скрипта вмісту, це буде сховище з цієї веб-сторінки, а не зберігання на розширеній сторінці.
Тепер, щоб ваш скрипт вмісту читав ваше розширення сховища (де ви їх встановили на своїй сторінці параметрів), вам потрібно використовувати повідомлення для розширення .
Перше, що потрібно зробити, - це сказати своєму сценарію вмісту, щоб надіслати запит на розширення для отримання деяких даних, і ці дані можуть бути вашим розширенням 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.
});
Ви можете зробити API навколо цього, щоб отримати загальні дані localStorage до сценарію вмісту або, можливо, отримати весь масив localStorage.
Я сподіваюся, що допомогло вирішити вашу проблему.
Щоб бути фантазійним та загальним ...
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.
});