Effacer le stockage local en javascript?

y a-t-il un moyen de Réinitialiser/Effacer le stockage local du navigateur en javascript?

616
demandé sur hygull 2011-10-06 01:26:53

9 réponses

utilisez ceci pour effacer l'enregistrement local:

localStorage.clear();
1153
répondu Digital Plane 2011-10-05 21:28:26

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

localStorage.removeItem("name of localStorage variable you want to remove");
147
répondu Ajeet Lakhani 2015-11-07 16:37:39
window.localStorage.clear(); //try this to clear all local storage
102
répondu Neal 2015-11-25 10:06:04

je pense clear(); supprimer toutes les données de stockage local, mais si vous avez besoin supprimer un seul élément, vous pouvez utiliser:

window.localStorage.removeItem("item_name");
22
répondu Roberth Solís 2016-01-26 17:46:58

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);
    }
  }
};
12
répondu Christian Juth 2018-04-12 11:22:11

tout d'abord, vous devez vérifier que localStorage est activé. Je recommande de le faire comme ceci:

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

Oui, vous pouvez (dans certains cas) il suffit de vérifier pour voir si le localStorage est un membre de l'objet window. Cependant, il y a des options de sandboxing iframe (entre autres choses) qui vont jeter une exception si vous tentez même d'accéder à l'index 'localStorage'. Ainsi, pour des raisons pratiques, c'est la meilleure façon de vérifier pour voir si le localStorage est activé. Ensuite, vous pouvez simplement effacer le stockage local comme cela.

if (localStorageEnabled) localStorage.clear();

par exemple, vous pouvez effacer le stockage local après qu'une erreur se produit dans les navigateurs webkit comme cela.

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

dans l'exemple ci-dessus, vous avez besoin du .bind(window) parce que sans lui, la fonction localStorage.clear s'exécutera dans le contexte de l'objet window , au lieu de l'objet localStorage ce qui le fera échouer silencieusement. Pour démontrer ceci, regardez l'exemple suivant:

window.onerror = localStorage.clear;

est le même que:

window.onerror = function(){
    localStorage.clear.call(window);
}
3
répondu Jack Giffin 2017-09-03 14:54:23
localStorage.clear();

ou

window.localStorage.clear();

pour supprimer un élément 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
répondu vino 2018-10-03 10:12:02

Localstorage est fixé sur le mondial window . Lorsque nous enregistrons localstorage dans les DevTools de chrome nous voyons qu'il a les APIs suivants:

enter image description here

nous pouvons utiliser les API suivantes pour supprimer des articles:

  1. localStorage.clear() : nettoie tout le stockage local
  2. localStorage.removeItem('myItem') : pour supprimer des articles individuels
0
répondu Willem van der Veen 2018-10-05 16:20:32

/ / assurez-vous d'installer le paquet "store" https://www.npmjs.com/package/store

import 'store' from 'store';

/ / puis dans votre code ajouter ces 2 lignes:

store.clearAll();
localStorage.clear();
-1
répondu Loay 2018-07-30 14:46:56