Domanda

E 'possibile memorizzare i dati in un modo che sarà accessibile dopo un riavvio del browser nel contesto di un'estensione Chrome?

È stato utile?

Soluzione

Ancora più semplice di questo:

Per leggere:

    var myStoredValue = localStorage["TheKeyToMyStoredValue"];

Per scrivere:

    localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;

Per sbarazzarsi di:

    delete localStorage["TheKeyToMyStoredValue"];

Altri suggerimenti

Sì, lo è. Andando oltre una procedura dettagliata completa di come fare questo probabilmente superare la lunghezza di una risposta StackOverflow ragionevole, quindi mi fare riferimento a questo molto ampio tutorial da Rajdeep Dua.

Il codice in questione sarebbe simile a questa:

// 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 supporta anche l'HTML5 Web spec Database . Questo vi dà un database SQL locale, in modo da poter fare le cose più complesse di una semplice memorizzazione di coppie nome / valore nella memoria locale.

La versione cromata corrente ha archiviazione locale.

ho usato io stesso. È possibile utilizzare Modernizr per rilevare se il browser supporta o no. Ho scritto una soluzione per un cliente in cui faccio un ripiego Cookie se non esiste alcun archiviazione locale, ma questo non dovrebbe essere un problema per le estensioni.

Al giorno d'oggi potrebbe essere meglio utilizzare chrome.storage chrome.storage è asincrona, il che rende più veloce e localStorage è limitata a 5 MB.

ci sono già alcuni grandi risposte qui, ma è da notare che, se si decide di utilizzare uno script contenuto nel proprio interno, che la trascrizione dei contenuti non avrà accesso alla localStorage. quindi chrome.storage è una buona alternativa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top