Gibt es eine Möglichkeit zum Zurücksetzen/Löschen des Browsers localStorage in javascript?
Das Seltsame ist, dass undefined
ist ein gültiger Schlüssel für setItem
y getItem
Gibt es eine Möglichkeit zum Zurücksetzen/Löschen des Browsers localStorage in javascript?
Hier ist eine Funktion, mit der Sie alle localStorage-Elemente mit Ausnahmen entfernen können. Sie benötigen jQuery für diese Funktion. Sie können das Wesentliche herunterladen .
Sie können sie folgendermaßen aufrufen
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);
}
}
};
@ebob Ja, es mag seltsam erscheinen, aber nein, das ist es nicht. localStorage funktioniert ähnlich wie Objekte, indem die Schlüssel in Strings umgewandelt werden. Wenn Sie zum Beispiel undefined als Schlüssel verwenden, sieht das so aus: localStorage.setItem(undefined, 'example Txt!')
speichern, wird es tatsächlich unter dem Schlüssel 'undefined'
wie Sie sehen können, wenn Sie den folgenden Code ausführen. console.log(localStorage.getItem('undefined'))
wird ausgegeben example Txt!
.
Wenn Sie alle Artikel löschen möchten, die Sie in localStorage entonces
localStorage.clear();
Verwenden Sie dies, 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) .
localStorage.removeItem('yourKey');
localStorage.clear();
または
window.localStorage.clear();
zum Ausgleich eines bestimmten Postens
window.localStorage.removeItem("item_name");
Um einen bestimmten Wert nach id zu entfernen:
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;
}
});
Als Erstes müssen Sie überprüfen, ob localStorage aktiviert ist. Ich würde empfehlen, dies wie folgt zu tun:
var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};
Ja, Sie können (in einigen Fällen) einfach überprüfen, ob der localStorage ein Mitglied des Window-Objekts ist. Allerdings gibt es iframe Sandboxing-Optionen (unter anderem), die eine Ausnahme auslösen, wenn Sie sogar versuchen, auf den Index "localStorage" zuzugreifen. Aus Best-Practice-Gründen ist dies also der beste Weg, um zu prüfen, ob localStorage aktiviert ist. Dann können Sie den localStorage einfach wie folgt löschen.
if (localStorageEnabled) localStorage.clear();
Zum Beispiel könnten Sie den localStorage nach einem Fehler in Webkit-Browsern wie folgt löschen.
// clears the local storage upon error
if (localStorageEnabled)
window.onerror = localStorage.clear.bind(localStorage);
Im obigen Beispiel benötigen Sie die .bind(window)
denn ohne sie würde die localStorage.clear
Funktion wird im Kontext der window
Objekt anstelle des localStorage
Objekt, wodurch es stillschweigend scheitert. Um dies zu demonstrieren, sehen Sie sich das folgende Beispiel an:
window.onerror = localStorage.clear;
ist dasselbe wie:
window.onerror = function(){
localStorage.clear.call(window);
}
In diesem Code geben Sie eine Liste von Schlüsselzeichenfolgen an, die Sie nicht löschen wollen, dann 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);
});
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
developer.mozilla.org/de-US/docs/Web/API/Window/localStorage