LocalStorage in Javascript löschen?

746

Gibt es eine Möglichkeit, den localStorage des Browsers in Javascript zurückzusetzen / zu löschen?

Bnicholas
quelle

Antworten:

1371

Verwenden Sie diese Option, um localStorage zu löschen:

localStorage.clear();
Digitales Flugzeug
quelle
6
@BakedInhalf überhaupt nicht. Vielleicht setzt Ihre App es noch einmal?
Destan
5
Ich rufe localStorage.clear () auf, wenn meine App gestartet wird, aber selbst wenn ich den Browser schließe, den Cache lösche usw., sind die Daten immer noch da. Ich weiß das, weil ich beim Initialisieren eine "Instanz" -Eigenschaft in meinem Modell auf eine Zufallszahl gesetzt habe und für eine bestimmte ID die Instanzeigenschaft immer dieselbe ist.
Sydney
11
@ digital-plane Löscht dies den lokalen Speicher von einer bestimmten Domäne oder dem gesamten Speicher?
Crisron
18
clear()entfernt alle localStorage-Schlüssel und -Werte aus der spezifischen Domäne, in der Sie sich befinden. Javascript kann aufgrund von CORS keine localStorage-Werte von anderen Domänen abrufen.
Fizzix
1
@BakedInhalf ist richtig, es bleibt, bis Sie die Seite hart aktualisieren. Wenn Sie Ihren localStorage löschen und direkt danach füllen, wird der vorherige Inhalt wiederhergestellt und Sie fügen ihm ein neues Element hinzu. Wenn Sie Ihren localStorage löschen und eine Hardrefresh durchführen, ist er leer und Sie können ihn wieder füllen.
Cyber
198

Wenn Sie ein bestimmtes Element oder eine bestimmte Variable aus dem lokalen Speicher des Benutzers entfernen möchten, können Sie verwenden

localStorage.removeItem("name of localStorage variable you want to remove");
Ajeet Lakhani
quelle
1
Hallo, @Ajeet Wenn ich für einen bestimmten Artikel nicht entfernen möchte, gibt es dann auch eine Möglichkeit, dies zu tun? Zum Beispiel 'removeItemNotIn (Schlüssel)', 'Alle außer einem definierten Schlüssel entfernen'? Danke im Voraus.
Me_developer
Hallo, @Shadow Wenn ich für ein bestimmtes Element nicht entfernen möchte, gibt es dann auch eine Möglichkeit, dies zu tun? Zum Beispiel 'removeItemNotIn (Schlüssel)', 'Alle außer einem definierten Schlüssel entfernen'? Danke im Voraus.
Me_developer
Ich habe eine Lösung für mein Problem gefunden: - if (localStorage.getItem (besondersKey) == null) {localStorage.clear (); } Aber wenn Sie eine bessere Lösung haben, lassen Sie es mich wissen. Vielen Dank.
Me_developer
1
@learner Du willst also alle Schlüssel außer einem bestimmten Schlüssel entfernen , oder? Dafür können Sie so etwas tun var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
Ajeet Lakhani
1
Ebenfalls möglich: Abrufen des Werts, Löschen und erneutes Einstellen des Werts, vielseitiger. let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
Michael B.
112
window.localStorage.clear(); //try this to clear all local storage
Naftali alias Neal
quelle
11

Hier ist eine Funktion, mit der Sie alle localStorage-Elemente mit Ausnahmen entfernen können. Für diese Funktion benötigen Sie jQuery . Sie können das Wesentliche herunterladen .

Sie können es so nennen

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);
    }
  }
};
Christian Juth
quelle
1
Seltsame Sache ist, dass undefinedein gültiger Schlüssel für setItemundgetItem
ebob
@ebob Ja, es mag seltsam erscheinen, aber nein, das ist es wirklich nicht. localStorage funktioniert ähnlich wie Objekte, da die Schlüssel in Zeichenfolgen konvertiert werden. Wenn Sie beispielsweise undefined als Schlüssel wie diesen verwenden localStorage.setItem(undefined, 'example Txt!'), wird dieser tatsächlich unter dem aufgerufenen Schlüssel gespeichert, 'undefined'wie Sie sehen können, wenn Sie den folgenden Code ausführen. console.log(localStorage.getItem('undefined')) wird ausgegeben example Txt!.
Jack Giffin
8

Localstorage ist global angehängt window. Wenn wir localstorage in den Chrome-Devtools protokollieren, sehen wir, dass es die folgenden APIs hat:

Geben Sie hier die Bildbeschreibung ein

Wir können die folgenden APIs zum Löschen von Elementen verwenden:

  1. localStorage.clear(): Löscht den gesamten lokalen Speicher
  2. localStorage.removeItem('myItem'): Einzelne Gegenstände entfernen
Willem van der Veen
quelle
4

Zuerst müssen Sie überprüfen, ob localStorage aktiviert ist. Ich würde empfehlen, es so zu machen:

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

Ja, Sie können (in einigen Fällen) einfach überprüfen, ob der localStorage Mitglied des Fensterobjekts ist. Es gibt jedoch (unter anderem) iframe-Sandbox-Optionen, die eine Ausnahme auslösen, wenn Sie sogar versuchen, auf den Index 'localStorage' zuzugreifen. Aus Best-Practice-Gründen ist dies daher die beste Methode, um zu überprüfen, ob localStorage aktiviert ist. Dann können Sie den localStorage einfach so löschen.

if (localStorageEnabled) localStorage.clear();

Sie können beispielsweise den localStorage löschen, nachdem in Webkit-Browsern wie diesem ein Fehler aufgetreten ist.

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

Im obigen Beispiel benötigen .bind(window)Sie die localStorage.clearFunktion , da die Funktion ohne sie im Kontext des windowObjekts ausgeführt wird, anstatt dass das localStorageObjekt im Hintergrund fehlschlägt. Schauen Sie sich das folgende Beispiel an, um dies zu demonstrieren:

window.onerror = localStorage.clear;

ist das gleiche wie:

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

Wenn Sie alle Elemente löschen möchten, die Sie in localStorage gespeichert haben, dann

localStorage.clear();

Verwenden Sie diese Option, um alle gespeicherten Schlüssel zu löschen.

Wenn Sie nur einen bestimmten Schlüssel / Wert löschen / entfernen möchten, können Sie removeItem (Schlüssel) verwenden .

localStorage.removeItem('yourKey');
Moshiur Rahman
quelle
2
localStorage.clear();

oder

window.localStorage.clear();

um einen bestimmten Gegenstand zu löschen

window.localStorage.removeItem("item_name");

So entfernen Sie einen bestimmten Wert anhand der 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;
                }
            });
Vino
quelle
1

So löschen Sie sessionStorage

sessionStorage.clear();
m-farhan
quelle
0

Hier ist ein einfacher Code, der den in Ihrem Browser gespeicherten lokalen Speicher mithilfe von Javascript löscht

    <script type="text/javascript">

if(localStorage) { // Check if the localStorage object exists

    localStorage.clear()  //clears the localstorage

} else {

    alert("Sorry, no local storage."); //an alert if localstorage is non-existing
}

</script>

Verwenden Sie diesen Code, um zu bestätigen, ob localstorage leer ist:

<script type="text/javascript">

// Check if the localStorage object exists
if(localStorage) {

    alert("Am still here, " + localStorage.getItem("your object name")); //put the object name
} else {
    alert("Sorry, i've been deleted ."); //an alert
}

</script>

Wenn null zurückgegeben wird, wird Ihr lokaler Speicher gelöscht.

Amaroko
quelle
0

Mit diesem Code geben Sie eine Liste von Schlüsselzeichenfolgen an, die Sie nicht löschen möchten. Anschließend werden diese aus allen Schlüsseln im lokalen Speicher gefiltert und die anderen gelöscht.

const allKeys = Object.keys(localStorage);

const toBeDeleted = allKeys.filter(value => {
  return !this.doNotDeleteList.includes(value);
});

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});
Joseph Moore
quelle