LocalStorage in Javascript löschen?


Antworten:


1371

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

localStorage.clear();

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");

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.


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

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

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

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');

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


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.


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);
});
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.