Очистка localStorage в JavaScript? - PullRequest
       38

Очистка localStorage в JavaScript?

674 голосов
/ 06 октября 2011

Есть ли способ сбросить / очистить localStorage браузера в javascript?

Ответы [ 7 ]

1261 голосов
/ 06 октября 2011

Используйте это, чтобы очистить localStorage:

localStorage.clear();
173 голосов
/ 22 августа 2014

Если вы хотите удалить определенный элемент или переменную из локального хранилища пользователя, вы можете использовать

localStorage.removeItem("name of localStorage variable you want to remove");
105 голосов
/ 06 октября 2011
window.localStorage.clear(); //try this to clear all local storage
11 голосов
/ 04 апреля 2015

Вот функция, которая позволит вам удалить все элементы localStorage с исключениями. Вам понадобится jQuery для этой функции. Вы можете скачать суть .

Вы можете назвать это так

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);
    }
  }
};
4 голосов
/ 23 марта 2017

Перво-наперво, вам нужно проверить, чтобы убедиться, что localStorage включен.Я бы рекомендовал сделать это следующим образом:

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

Да, вы можете (в некоторых случаях) просто проверить, является ли localStorage членом объекта окна.Тем не менее, существуют опции песочницы 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;

совпадает с:

window.onerror = function(){
    localStorage.clear.call(window);
}
1 голос
/ 03 октября 2018
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;
                }
            });
0 голосов
/ 05 октября 2018

Местное хранилище прикреплено к глобальному window.Когда мы регистрируем localalstorage в chrome devtools, мы видим, что у него есть следующие API:

enter image description here

Мы можем использовать следующие API для удаления элементов:

  1. localStorage.clear(): очистить все локальное хранилище
  2. localStorage.removeItem('myItem'): удалить отдельные элементы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...