Compensación localStorage en javascript?


¿Hay alguna manera de restablecer/borrar localStorage del navegador en javascript?

Author: hygull, 2011-10-06

9 answers

Use esto para borrar localStorage:

localStorage.clear();
 1153
Author: Digital Plane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-05 21:28:26

Si desea eliminar un elemento o variable específica del almacenamiento local del usuario, puede usar

localStorage.removeItem("name of localStorage variable you want to remove");
 147
Author: Ajeet Lakhani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-07 16:37:39
window.localStorage.clear(); //try this to clear all local storage
 102
Author: Neal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-25 10:06:04

Creo que clear(); elimine todos los datos de almacenamiento local, pero si necesita eliminar solo un elemento, puede usar:

window.localStorage.removeItem("item_name");
 22
Author: Roberth Solís,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-26 17:46:58

Aquí hay una función que le permitirá eliminar todos los elementos localStorage con excepciones. Necesitará jQuery para esta función. Puede descargar el contenido esencial.

Puedes llamarlo así

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);
    }
  }
};
 12
Author: Christian Juth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-12 11:22:11

Lo primero es lo primero, debe verificar para asegurarse de que localStorage esté habilitado. Yo recomendaría hacerlo así:

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

Sí, puede (en algunos casos) simplemente comprobar si el localStorage es un miembro del objeto window. Sin embargo, hay opciones de sandboxing iframe (entre otras cosas) que lanzarán una excepción si incluso intenta acceder al índice 'localStorage'. Por lo tanto, por razones de mejores prácticas, esta es la mejor manera de comprobar si el localStorage es permitir. Luego, puedes borrar el localStorage así.

if (localStorageEnabled) localStorage.clear();

Por ejemplo, podría borrar el localStorage después de que se produzca un error en los navegadores webkit como este.

// clears the local storage upon error
if (localStorageEnabled)
  window.onerror = localStorage.clear.bind(localStorage);

En el ejemplo anterior, necesita el .bind(window) porque sin él, la función localStorage.clear se ejecutará en el contexto del objeto window, en lugar de que el objeto localStorage lo haga fallar silenciosamente. Para demostrar esto, mira el siguiente ejemplo:

window.onerror = localStorage.clear;

Es lo mismo que:

window.onerror = function(){
    localStorage.clear.call(window);
}
 3
Author: Jack Giffin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-03 14:54:23
localStorage.clear();

O

window.localStorage.clear();

Para borrar un determinado elemento

window.localStorage.removeItem("item_name");

Para eliminar un valor particular por 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
Author: vino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-03 10:12:02

Localstorage se adjunta en el global window. Cuando registramos localstorage en chrome devtools vemos que tiene las siguientes API:

introduzca la descripción de la imagen aquí

Podemos usar las siguientes API para eliminar elementos:

  1. localStorage.clear(): Borra todo el localstorage
  2. localStorage.removeItem('myItem'): Para eliminar elementos individuales
 0
Author: Willem van der Veen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-05 16:20:32

/ / asegúrese de instalar el paquete' store ' https://www.npmjs.com/package/store

import 'store' from 'store';

/ / luego en su código agregue estas 2 líneas:

store.clearAll();
localStorage.clear();
 -1
Author: Loay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-30 14:46:56