¿Borrar localStorage en javascript?

Respuestas:

1371

Use esto para borrar localStorage:

localStorage.clear();
Plano digital
fuente
66
@BakedInhalf en absoluto. Tal vez su aplicación lo configura de nuevo?
destan
55
Llamo a localStorage.clear () cuando se inicia mi aplicación, pero incluso si cierro el navegador, borro el caché, etc., los datos siguen ahí. Lo sé porque he establecido una propiedad de "instancia" en mi modelo en un número aleatorio al inicializar, y, para una identificación dada, la propiedad de instancia es siempre la misma.
sydneyos
11
@ digital-plane ¿Esto borrará el almacenamiento local de un dominio específico o todo el almacenamiento?
crisron
18
clear()eliminará todas las claves y valores de localStorage del dominio específico en el que se encuentra. Javascript no puede obtener valores de localStorage de ningún otro dominio debido a CORS.
Fizzix
1
@BakedInhalf tiene razón, permanece hasta que actualice la página. Cuando borra su LocalStorage y lo llena inmediatamente después, restaura el contenido anterior y le agrega un nuevo elemento. Cuando borra su LocalStorage y hace un hardrefresh, está vacío y puede comenzar a llenarlo nuevamente.
Cyber
198

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");
Ajeet Lakhani
fuente
1
Hola, @Ajeet Si no quiero eliminar un artículo en particular, ¿hay alguna forma de hacerlo también? Por ejemplo, 'removeItemNotIn (key)', 'remove all excepto una clave definida'? Gracias por adelantado.
Me_developer
Hola, @Shadow Si no quiero eliminar un artículo en particular, ¿hay alguna manera de hacerlo también? Por ejemplo, 'removeItemNotIn (key)', 'remove all excepto una clave definida'? Gracias por adelantado.
Me_developer
Descubrí una solución para mi problema: - if (localStorage.getItem (particularKey) == null) {localStorage.clear (); } Pero si tiene una solución mejor, hágamelo saber. Gracias.
Me_developer
1
@learner Entonces, ¿quieres eliminar todas las claves excepto una clave en particular , verdad? Para eso puedes hacer algo como esto var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
Ajeet Lakhani
1
También es posible: obtener el valor, borrar y establecer el valor nuevamente, más versátil. let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
Michael B.
112
window.localStorage.clear(); //try this to clear all local storage
Naftali aka Neal
fuente
11

Aquí hay una función que le permitirá eliminar todos los elementos de LocalStorage con excepciones. Necesitará jQuery para esta función. Puedes descargar la esencia .

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);
    }
  }
};
Christian Juth
fuente
1
Lo extraño es que undefinedes una clave válida para setItemygetItem
ebob
@ebob Sí, puede parecer extraño, pero no, realmente no lo es. localStorage funciona de manera similar a los objetos en que las claves se convierten en cadenas. Por ejemplo, si usa undefined como una clave como esta:, la localStorage.setItem(undefined, 'example Txt!')almacenará en la clave llamada 'undefined'como puede ver cuando ejecuta el siguiente código. console.log(localStorage.getItem('undefined')) es la salida example Txt!.
Jack Giffin
8

El almacenamiento local está vinculado a lo global window. Cuando registramos el almacenamiento local en las devtools de Chrome, vemos que tiene las siguientes API:

ingrese la descripción de la imagen aquí

Podemos usar las siguientes API para eliminar elementos:

  1. localStorage.clear(): Borra todo el almacenamiento local
  2. localStorage.removeItem('myItem'): Para eliminar elementos individuales
Willem van der Veen
fuente
4

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 verificar si localStorage es miembro del objeto de la ventana. Sin embargo, hay opciones de sandboxing de iframe (entre otras cosas) que arrojará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 verificar si localStorage está habilitado. Luego, puede borrar el almacenamiento local de esta manera.

if (localStorageEnabled) localStorage.clear();

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

// 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 localStorage.clearfunción se ejecutará en el contexto del windowobjeto, en lugar del localStorageobjeto, lo que hace que falle silenciosamente. Para demostrar esto, mira el siguiente ejemplo:

window.onerror = localStorage.clear;

es lo mismo que:

window.onerror = function(){
    localStorage.clear.call(window);
}
Jack Giffin
fuente
3

Si desea borrar todos los elementos que almacenó en localStorage, entonces

localStorage.clear();

Use esto para borrar todas las claves almacenadas.

Si desea borrar / eliminar solo una clave / valor específico, puede usar removeItem (clave) .

localStorage.removeItem('yourKey');
Moshiur Rahman
fuente
2
localStorage.clear();

o

window.localStorage.clear();

para borrar un artículo en particular

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;
                }
            });
vino
fuente
1

Para borrar la sesión Almacenamiento

sessionStorage.clear();
m-farhan
fuente
0

Aquí hay un código simple que borrará el almacenamiento local almacenado en su navegador mediante javascript

    <script type="text/javascript">

if(localStorage) { // Check if the localStorage object exists

    localStorage.clear()  //clears the localstorage

} else {

    alert("Sorry, no local storage."); //an alert if localstorage is non-existing
}

</script>

Para confirmar si localstorage está vacío, use este código:

<script type="text/javascript">

// Check if the localStorage object exists
if(localStorage) {

    alert("Am still here, " + localStorage.getItem("your object name")); //put the object name
} else {
    alert("Sorry, i've been deleted ."); //an alert
}

</script>

si devuelve nulo, se borra su almacenamiento local.

amaroko
fuente
0

Este código aquí proporciona una lista de cadenas de claves que no desea eliminar, luego las filtra de todas las claves en el almacenamiento local y luego elimina las demás.

const allKeys = Object.keys(localStorage);

const toBeDeleted = allKeys.filter(value => {
  return !this.doNotDeleteList.includes(value);
});

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});
Joseph Moore
fuente