Is there any way to reset/clear the browser's localStorage in javascript?
14 Answers
Use this to clear localStorage:
localStorage.clear();
7 Comments
clear() will remove all localStorage keys and values from the specific domain you are on. Javascript is unable to get localStorage values from any other domains due to CORS.If you want to remove a specific Item or variable from the user's local storage, you can use
localStorage.removeItem("name_of_localStorage_variable_to_remove");
5 Comments
var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')Localstorage is attached on the global window. When we log localstorage in the chrome devtools we see that it has the following APIs:
We can use the following API's for deleting items:
localStorage.clear(): Clears the whole localstoragelocalStorage.removeItem('myItem'): To remove individual items
Comments
Here is a function that will allow you to remove all localStorage items with exceptions. You will need jQuery for this function. You can download the gist.
You can call it like this
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);
}
}
};
2 Comments
undefined is a valid key for setItem and getItemlocalStorage.setItem(undefined, 'example Txt!'), will actuall store it under the key called 'undefined' as you can see when you run the following code. console.log(localStorage.getItem('undefined')) will output example Txt!.localStorage.clear();
or
window.localStorage.clear();
to clear particular item
window.localStorage.removeItem("item_name");
To remove particular value by 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;
}
});
Comments
First things first, you need to check to make sure that localStorage is enabled. I would recommend doing it like this:
var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};
Yes, you can (in some cases) just check to see if the localStorage is a member of the window object. However, there are iframe sandboxing options (among other things) that will throw an exception if you even attempt to access the index 'localStorage'. Thus, for best-practices reasons, this is the best way to check to see if the localStorage is enabled. Then, you can just clear the localStorage like so.
if (localStorageEnabled) localStorage.clear();
For example, you could clear the localStorage after an error occurs in webkit browsers like so.
// clears the local storage upon error
if (localStorageEnabled)
window.onerror = localStorage.clear.bind(localStorage);
In the above example, you need the .bind(window) because without it, the localStorage.clear function will run in the context of the window object, instead of the localStorage object making it silently fail. To demonstrate this, look at the below example:
window.onerror = localStorage.clear;
is the same as:
window.onerror = function(){
localStorage.clear.call(window);
}
Comments
This code here you give a list of strings of keys that you don't want to delete, then it filters those from all the keys in local storage then deletes the others.
const allKeys = Object.keys(localStorage);
const toBeDeleted = allKeys.filter(value => {
return !this.doNotDeleteList.includes(value);
});
toBeDeleted.forEach(value => {
localStorage.removeItem(value);
});
Comments
To clear sessionStorage
sessionStorage.clear();
1 Comment
If someone is looking for a way to clear the localStorage whenever a browser tab is closed, the below code works. (sample use case: keep some copied data in localStoarge, to paste on another tab - but at the same time, needs the cache to not appear on new tabs, whenever all the previous tabs gets closed)
window.onbeforeunload = () => {
// get localStorage item with specified key
const storage = JSON.parse(localStorage.getItem('MY_KEY'));
// clear cache if exists
if (!isNil(storage)) localStorage.removeItem('MY_KEY');
};
It adds an eventListener to the window, to detect tab closing and just before closed, it clears the tab's localStorage (of specified key). It will not clear localStorage (of the same key) on other tabs.
This is a great solution, if we want to clear localStorage only in the closed tab, and keep the localStorage (of the same key) on other tabs intact.
So that,
- as long as a user keeps one tab opened, the user can leverage the localStorage cache, and
- after all the tabs are closed, the localStorage will not appear on new tabs.
Comments
Here is a simple code that will clear localstorage stored in your browser by using 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>
To confirm if localstorage is empty use this code:
<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>
if it returns null then your localstorage is cleared.
Comments
Manual Button:
<script>
function ask() {
if (confirm('Clear localStorage?') == true) {
localStorage.clear()
location.reload()
}
else {
alert('Nothing happend')
}
}
}
</script>
<style>
button {border-width:0px;background-color:#efefef;padding:5px;width:5cm;margin:5px;}
</style>
<button onclick=ask()>Clear localStorage</button>
