Pregunta

¿Es posible almacenar datos en una forma que sea accesible después de un reinicio del navegador en el contexto de una extensión de Chrome?

¿Fue útil?

Solución

Incluso más simple que eso:

Para leer:

    var myStoredValue = localStorage["TheKeyToMyStoredValue"];

Para escribir:

    localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;

Para deshacerse de:

    delete localStorage["TheKeyToMyStoredValue"];

Otros consejos

Sí, lo es. El pasar un tutorial completo de cómo hacer esto, probablemente superaría la longitud de una respuesta StackOverflow razonable, por lo que te referiré a esta muy extenso tutorial por Rajdeep Dua.

El código en cuestión se vería así:

// Store item in local storage:
function setItem(key, value) {
  try {
    log("Storing [" + key + ":" + value + "]");
    window.localStorage.removeItem(key);      // <-- Local storage!
    window.localStorage.setItem(key, value);  // <-- Local storage!
  } catch(e) {
    log("Error inside setItem");
    log(e);
  }
  log("Return from setItem" + key + ":" +  value);
}

// Gets item from local storage with specified key.
function getItem(key) {
  var value;
  log('Retrieving key [' + key + ']');
  try {
    value = window.localStorage.getItem(key);  // <-- Local storage!
  }catch(e) {
    log("Error inside getItem() for key:" + key);
  log(e);
  value = "null";
  }
  log("Returning value: " + value);
  return value;
}

// Clears all key/value pairs in local storage.
function clearStrg() {
  log('about to clear local storage');
  window.localStorage.clear(); // <-- Local storage!
  log('cleared');
}

function log(txt) {
  if(logging) {
    console.log(txt);
  }
}

Chrome también es compatible con el HTML5 base de datos Web especificación. Esto le da una base de datos SQL local, por lo que puede hacer cosas más complejas que el simple almacenamiento de pares de nombre / valor en el almacenamiento local.

La versión actual de cromo tiene almacenamiento local.

he utilizado yo mismo. Puede utilizar Modernizr para detectar si los soportes del navegador o no. He escrito una solución para un cliente donde hago una reserva para cookie si no existe un almacenamiento local, pero esto no debería ser un problema para las extensiones.

Hoy en día puede ser mejor usar chrome.storage chrome.storage es asíncrona, lo que hace que sea más rápido y localStorage se limita a 5 MB.

ya hay algunas respuestas aquí, pero tenga en cuenta que si decide utilizar un script contenido en su extensión, que la escritura de contenido no tendrá acceso al almacenamiento local. Por lo tanto, chrome.storage es una alternativa buena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top