Actualización 2016:
Google Chrome lanzó la API de almacenamiento: http://developer.chrome.com/extensions/storage.html
Es bastante fácil de usar como las otras API de Chrome y puede usarlo desde cualquier contexto de página dentro de 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);
});
Para usarlo, asegúrese de definirlo en el manifiesto:
"permissions": [
"storage"
],
Hay métodos para "eliminar", "borrar", "getBytesInUse" y un detector de eventos para escuchar el almacenamiento modificado "onChanged"
Uso de localStorage nativo ( antigua respuesta de 2011 )
Los scripts de contenido se ejecutan en el contexto de páginas web, no páginas de extensión. Por lo tanto, si está accediendo a localStorage desde su script de contenido, será el almacenamiento de esa página web, no el almacenamiento de la página de extensión.
Ahora, para permitir que su secuencia de comandos de contenido lea el almacenamiento de su extensión (donde los configura desde su página de opciones), debe usar la transmisión de mensajes de extensión .
Lo primero que debe hacer es indicarle a su script de contenido que envíe una solicitud a su extensión para obtener algunos datos, y esos datos pueden ser su extensión 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.
});
Puede hacer una API para obtener datos genéricos de localStorage en su secuencia de comandos de contenido, o tal vez, obtener toda la matriz localStorage.
Espero que eso haya ayudado a resolver tu problema.
Ser elegante y genérico ...
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.
});