web-dev-qa-db-fra.com

Effacer le stockage local en javascript?

Est-il possible de réinitialiser/effacer le stockage local de votre navigateur en javascript?

650
Bnicholas

Utilisez ceci pour effacer le stockage local:

localStorage.clear();
1218
Digital Plane

Si vous souhaitez supprimer un élément ou une variable spécifique du stockage local de l'utilisateur, vous pouvez utiliser 

localStorage.removeItem("name of localStorage variable you want to remove");
168
Ajeet Lakhani
window.localStorage.clear(); //try this to clear all local storage
104
Neal

Voici une fonction qui vous permettra de supprimer tous les éléments localStorage avec des exceptions. Vous aurez besoin de jQuery pour cette fonction. Vous pouvez télécharger le Gist .

Vous pouvez l'appeler comme ça

let clearStorageExcept = function(exceptions) {
  let keys = [];
  exceptions = [].concat(exceptions); // prevent undefined

  // get storage keys
  $.each(localStorage, (key) => {
    keys.Push(key);
  });

  // loop through keys
  for (let i = 0; i < keys.length; i++) {
    let key = keys[i];
    let deleteItem = true;

    // check if key excluded
    for (let j = 0; j < exceptions.length; j++) {
      let exception = exceptions[j];
      if (key == exception) {
        deleteItem = false;
      }
    }

    // delete key
    if (deleteItem) {
      localStorage.removeItem(key);
    }
  }
};
11
Christian Juth

Tout d’abord, vous devez vérifier que localStorage est activé. Je recommanderais de le faire comme ceci:

var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};

Oui, vous pouvez (dans certains cas) simplement vérifier si le stockage local est un membre de l'objet window. Cependant, il existe des options de sandboxing iframe (entre autres) qui déclencheront une exception si vous tentez même d'accéder à l'index 'localStorage'. Ainsi, pour des raisons de meilleures pratiques, c'est le meilleur moyen de vérifier si le stockage local est activé. Ensuite, vous pouvez simplement effacer le stockage local comme suit.

if (localStorageEnabled) localStorage.clear();

Par exemple, vous pouvez effacer le stockage local après qu'une erreur se produise dans les navigateurs Web.

// clears the local storage upon error
if (localStorageEnabled)
  window.onerror = localStorage.clear.bind(localStorage);

Dans l'exemple ci-dessus, vous avez besoin de .bind(window) car, sans cela, la fonction localStorage.clear sera exécutée dans le contexte de l'objet window au lieu de l'objet localStorage, ce qui entraînera son échec en mode silencieux. Pour illustrer cela, regardez l'exemple ci-dessous:

window.onerror = localStorage.clear;

est le même que:

window.onerror = function(){
    localStorage.clear.call(window);
}
4
Jack Giffin

Localstorage est attaché à la variable globale window. Lorsque nous enregistrons localstorage dans chrome devtools, nous constatons qu'il possède les API suivantes:

 enter image description here

Nous pouvons utiliser les API suivantes pour supprimer des éléments:

  1. localStorage.clear(): Efface tout le stockage local.
  2. localStorage.removeItem('myItem'): pour supprimer des éléments individuels
0
localStorage.clear();

ou 

window.localStorage.clear();

pour effacer un article particulier

window.localStorage.removeItem("item_name");

Pour supprimer une valeur particulière par id:

var item_detail = JSON.parse(localStorage.getItem("key_name")) || [];           
            $.each(item_detail, function(index, obj){
                if (key_id == data('key')) {
                    item_detail.splice(index,1);
                    localStorage["key_name"] = JSON.stringify(item_detail);
                    return false;
                }
            });
0
vino

Pour effacer sessionStorage

sessionStorage.clear();
0
m-farhan