es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo colocar un objeto JSON restaurado desde chrome.storage.local en una variable?

Estoy intentando construir una pequeña extensión de Chrome y, en resumen, tengo un popup donde el usuario puede marcar/desmarcar un conjunto de casillas de verificación. Una función modifica un objeto JSON según las casillas marcadas/desmarcadas y luego lo guarda en chrome.storage.local.

Hasta aquí todo bien; los problemas comienzan en una etapa posterior, cuando intento recuperar los datos almacenados en el content_script.
Logré pasar el objeto a través de una alerta, pero, para que mi script funcione, necesito que ese JSON se almacene nuevamente en una variable.

Este es el código que inserté en el popup.js y que funciona bien:

chrome.storage.local.set({
    capacity: object
}, function() {
    console.log('almacenado con chrome.storage.local');
});

Aquí está el código que tengo en el script actual:

var capacity;

load();

function load() {
    chrome.storage.local.get('capacity', function(result){
        capacity = result.capacity;
        alert(result.capacity);
    });
}

Estoy tratando de hacer que “capacity” sea la misma variable que era en popup.js cuando la guardé, pero después de varios intentos solo logré que los valores se impriman en la alerta.

Entonces mi pregunta es: ¿es posible hacer esto? ¿Dónde me estoy equivocando?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible recuperar el objeto JSON de chrome.storage.local y almacenarlo en una variable en el content_script. De hecho, estás en el camino correcto. El código que has mostrado debería funcionar, pero hay un error tipográfico en la función load():

    function load() {
        chrome.storage.local.get('capacity', function(result){
            capacity = result.capacity;
            alert(result.capacity);
        }); // <-- falta un paréntesis de cierre
    }
    

    Asegúrate de añadir el paréntesis de cierre que falta e intenta nuevamente. Después de llamar a la función load(), capacity debería contener el objeto JSON que se guardó en el archivo popup.js.

Comments are closed.