Est-il possible de réinitialiser/effacer le stockage local de votre navigateur en javascript?
Utilisez ceci pour effacer le stockage local:
localStorage.clear();
Si vous souhaitez supprimer un élément ou une variable spécifique du stockage local de l'utilisateur, vous pouvez utiliser
localStorage.removeItem("name of localStorage variable you want to remove");
window.localStorage.clear(); //try this to clear all local storage
Voici une fonction qui vous permettra de supprimer tous les éléments localStorage avec des exceptions. Vous aurez besoin de jQuery pour cette fonction. Vous pouvez télécharger le Gist .
Vous pouvez l'appeler comme ça
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);
}
}
};
Tout d’abord, vous devez vérifier que localStorage est activé. Je recommanderais de le faire comme ceci:
var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};
Oui, vous pouvez (dans certains cas) simplement vérifier si le stockage local est un membre de l'objet window. Cependant, il existe des options de sandboxing iframe (entre autres) qui déclencheront une exception si vous tentez même d'accéder à l'index 'localStorage'. Ainsi, pour des raisons de meilleures pratiques, c'est le meilleur moyen de vérifier si le stockage local est activé. Ensuite, vous pouvez simplement effacer le stockage local comme suit.
if (localStorageEnabled) localStorage.clear();
Par exemple, vous pouvez effacer le stockage local après qu'une erreur se produise dans les navigateurs Web.
// clears the local storage upon error
if (localStorageEnabled)
window.onerror = localStorage.clear.bind(localStorage);
Dans l'exemple ci-dessus, vous avez besoin de .bind(window)
car, sans cela, la fonction localStorage.clear
sera exécutée dans le contexte de l'objet window
au lieu de l'objet localStorage
, ce qui entraînera son échec en mode silencieux. Pour illustrer cela, regardez l'exemple ci-dessous:
window.onerror = localStorage.clear;
est le même que:
window.onerror = function(){
localStorage.clear.call(window);
}
Localstorage est attaché à la variable globale window
. Lorsque nous enregistrons localstorage dans chrome devtools, nous constatons qu'il possède les API suivantes:
Nous pouvons utiliser les API suivantes pour supprimer des éléments:
localStorage.clear()
: Efface tout le stockage local.localStorage.removeItem('myItem')
: pour supprimer des éléments individuelslocalStorage.clear();
ou
window.localStorage.clear();
pour effacer un article particulier
window.localStorage.removeItem("item_name");
Pour supprimer une valeur particulière par 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;
}
});
Pour effacer sessionStorage
sessionStorage.clear();