Очистка localStorage в javascript?
есть ли способ сбросить / очистить localStorage браузера в javascript?
9 ответов
Если вы хотите удалить определенный элемент или переменную из локального хранилища пользователя, вы можете использовать
localStorage.removeItem("name of localStorage variable you want to remove");
Я думаю clear();
удалить все локальные хранилища данных, но если вам нужно удалить только один элемент, вы можете использовать:
window.localStorage.removeItem("item_name");
вот функция, которая позволит вам удалить все элементы localStorage с исключениями. Вам понадобится jQuery для этой функции. Ты можешь!--4-->скачать Гист.
вы можете назвать это так
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);
}
}
};
во-первых, сначала вам нужно проверить, чтобы убедиться, что localStorage включен. Я бы рекомендовал сделать это так:
var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};
Да ,вы можете (в некоторых случаях) просто проверить, является ли localStorage членом объекта window. Тем не менее, есть параметры песочницы iframe (среди прочего), которые вызовут исключение, если вы даже попытаетесь получить доступ к индексу "localStorage". Таким образом, по соображениям наилучшей практики это лучший способ проверить, localStorage является поддержкой. Затем вы можете просто очистить localStorage так.
if (localStorageEnabled) localStorage.clear();
например, вы можете очистить localStorage после возникновения ошибки в браузерах webkit.
// clears the local storage upon error
if (localStorageEnabled)
window.onerror = localStorage.clear.bind(localStorage);
в приведенном выше примере вам нужно .bind(window)
потому что без него localStorage.clear
функция будет работать в контексте window
объект, а не localStorage
объект делает его молча терпеть неудачу. Чтобы продемонстрировать это, посмотрите на приведенном ниже примере:
window.onerror = localStorage.clear;
is то же самое, что:
window.onerror = function(){
localStorage.clear.call(window);
}
localStorage.clear();
или
window.localStorage.clear();
очистить определенный элемент
window.localStorage.removeItem("item_name");
чтобы удалить определенное значение по 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;
}
});
Localstorage прилагается к глобальному window
. Когда мы регистрируем localstorage в Chrome devtools, мы видим, что он имеет следующие API:
мы можем использовать следующие API для удаления элементов:
-
localStorage.clear()
: очищает весь localstorage -
localStorage.removeItem('myItem')
: удалить отдельные элементы
/ / убедитесь, что вы установили пакет "store"https://www.npmjs.com/package/store
import 'store' from 'store';
/ / затем в вашем коде добавьте эти 2 строки:
store.clearAll();
localStorage.clear();