Очистка localStorage в javascript?

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

9 ответов


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

localStorage.clear();

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

localStorage.removeItem("name of localStorage variable you want to remove");

window.localStorage.clear(); //try this to clear all local storage

Я думаю 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:

enter image description here

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

  1. localStorage.clear(): очищает весь localstorage
  2. localStorage.removeItem('myItem'): удалить отдельные элементы

/ / убедитесь, что вы установили пакет "store"https://www.npmjs.com/package/store

import 'store' from 'store';

/ / затем в вашем коде добавьте эти 2 строки:

store.clearAll();
localStorage.clear();