2010-01-28 11 views

risposta

43

ancora più semplice di quello:

per leggere:

var myStoredValue = localStorage["TheKeyToMyStoredValue"]; 

a scrivere:

localStorage["TheKeyToMyStoredValue"] = myNewValueToStore; 

per sbarazzarsi di:

delete localStorage["TheKeyToMyStoredValue"]; 
+2

è signore sono un druido di livello 99 e santo. – EbilGenius

+0

Questa è stata la migliore risposta che ho letto da molto tempo. – whizzzkid

+0

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) –

21

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); 
    } 
    } 
+1

collegamento del tutorial è rotto, ma l'esempio esiste ancora. Ecco l'esempio del tutorial https://chrome.google.com/webstore/detail/hmbpgbeiphknbkjjfppodijapijlpkkc –

+0

Questa API svolge un ottimo lavoro: https://developer.chrome.com/extensions/storage.html consente inoltre di sincronizzare i dati al vostro profilo –

5

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.

+0

link di morti a partire dal 11/11/11 – techie007

+1

ho rimosso e aggiornato la risposta –

7

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.

3

Oggi potrebbe essere meglio utilizzare chrome.storage. chrome.storage è asincrono, il che lo rende più veloce e localStorage è limitato a 5 MB.

+0

"che rende più veloce" _ \ [citazione necessaria \] _ – Xan

+0

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

+0

Grazie per il link! – Xan

1

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.