È possibile memorizzare i dati in un modo che sarà accessibile dopo il riavvio del browser nel contesto di un'estensione di Chrome?Le estensioni di Chrome hanno accesso all'archivio locale?
risposta
ancora più semplice di quello:
per leggere:
var myStoredValue = localStorage["TheKeyToMyStoredValue"];
a scrivere:
localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;
per sbarazzarsi di:
delete localStorage["TheKeyToMyStoredValue"];
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 this very extensive 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);
}
}
collegamento del tutorial è rotto, ma l'esempio esiste ancora. Ecco l'esempio del tutorial https://chrome.google.com/webstore/detail/hmbpgbeiphknbkjjfppodijapijlpkkc –
Questa API svolge un ottimo lavoro: https://developer.chrome.com/extensions/storage.html consente inoltre di sincronizzare i dati al vostro profilo –
La versione cromata corrente ha archiviazione locale.
ho usato io stesso. È possibile utilizzare modernizr per rilevare se il browser lo supporta o meno. Ho scritto una soluzione per un client in cui faccio un fallback ai cookie se non esiste alcuna memoria locale, ma questo non dovrebbe essere un problema per le estensioni.
link di morti a partire dal 11/11/11 – techie007
ho rimosso e aggiornato la risposta –
Chrome supporta anche l'HTML5 Web Database spec. Questo ti dà un database SQL locale, così puoi fare cose più complesse di una semplice memorizzazione di coppie nome/valore in Local Storage.
Oggi potrebbe essere meglio utilizzare chrome.storage. chrome.storage è asincrono, il che lo rende più veloce e localStorage è limitato a 5 MB.
"che rende più veloce" _ \ [citazione necessaria \] _ – Xan
Come specificato [qui] (https: // developer.chrome.com/apps/storage) per sviluppatori di cromo, di massa non bloccante legge e scrive le operazioni sono più veloci il blocco e API localStorage seriale. – krbnr
Grazie per il link! – Xan
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.
è signore sono un druido di livello 99 e santo. – EbilGenius
Questa è stata la migliore risposta che ho letto da molto tempo. – whizzzkid
ottima risposta. basta notare che questo non funzionerà con gli script di contenuto. Ero confuso finché non ho trovato [questo] (http://stackoverflow.com/a/15466494/4926817) –