2010-01-28 8 views

Répondre

43

encore plus simple que cela:

à lire:

var myStoredValue = localStorage["TheKeyToMyStoredValue"]; 

à écrire:

localStorage["TheKeyToMyStoredValue"] = myNewValueToStore; 

pour se débarrasser de:

delete localStorage["TheKeyToMyStoredValue"]; 
+2

Vous êtes un druide de niveau 99 et saint. – EbilGenius

+0

Cela a été la meilleure réponse que j'ai lue depuis très longtemps. – whizzzkid

+0

bonne réponse. Notez simplement que cela ne fonctionnera pas avec les scripts de contenu. J'étais confus jusqu'à ce que je trouve [this] (http://stackoverflow.com/a/15466494/4926817) –

21

Oui, c'est le cas. Passer en revue une procédure pas à pas complète sur la façon de le faire dépasserait probablement la longueur d'une réponse StackOverflow raisonnable, donc je vous renvoie à this very extensive tutorial par Rajdeep Dua.

Le code correspondant ressemblerait à ceci:

// 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

Le lien du didacticiel est rompu, mais l'exemple existe toujours. Voici l'exemple du tutoriel https://chrome.google.com/webstore/detail/hmbpgbeiphknbkjjfppodijapijlpkkc –

+0

Cette API fait également du bon travail: https://developer.chrome.com/extensions/storage.html Il vous permet également de synchroniser les données à votre profil –

5

La version chromée actuelle a un stockage local.

Je l'ai moi-même utilisé. Vous pouvez utiliser modernizr pour détecter si le navigateur le supporte ou non. J'ai écrit une solution pour un client où je fais un repli sur cookie si aucun stockage local n'existe, mais cela ne devrait pas poser de problème pour les extensions.

+0

Lien est mort au 11/11/11 – techie007

+1

Je l'ai enlevé et mis à jour la réponse –

7

Chrome prend également en charge le HTML5 Web Database spec. Cela vous donne une base de données SQL locale, ce qui vous permet de faire des choses plus complexes que de simplement stocker des paires nom/valeur dans le stockage local.

3

Aujourd'hui, il peut être préférable d'utiliser chrome.storage. chrome.storage est asynchrone, ce qui le rend plus rapide et localStorage est limité à 5 Mo.

+0

"qui le rend plus rapide" _ \ [citation nécessaire \] _ – Xan

+0

Comme spécifié [ici] (https: // developer.chrome.com/apps/storage) par chrome devs, les opérations de lecture et d'écriture en bloc non bloquantes sont plus rapides que le blocage et l'API serialStorage série. – krbnr

+0

Merci pour le lien! – Xan

1

Il y a déjà quelques bonnes réponses ici, mais notez que si vous décidez d'utiliser un script de contenu dans votre extension, ce script de contenu n'aura pas accès à localStorage. par conséquent, chrome.storage est une bonne alternative.

Questions connexes