可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
This question already has an answer here:
I need to clear all data i set into localStorage
. By this, I mean completely reset localStorage
to null
when users remove their accounts.
How can i do that with a simple function?
I tried this:
function clearLocalStorage(){ return localStorage= null; }
But it doesn't work as expected.
回答1:
localStorage.clear();
should work.
回答2:
If you want to remove/clean all the values from local storage than use
localStorage.clear();
And if you want to remove the specific item from local storage than use the following code
localStorage.removeItem(key);
回答3:
It only worked for me in Firefox when accessing it from the window
object.
Example...
window.onload = function() { window.localStorage.clear(); }
回答4:
Using .one
ensures this is done only once and not repeatedly.
$(window).one("focus", function() { localStorage.clear(); });
It is okay to put several document.ready event listeners (if you need other events to execute multiple times) as long as you do not overdo it, for the sake of readability.
.one
is especially useful when you want local storage to be cleared only once the first time a web page is opened or when a mobile application is installed the first time.
// Fired once when document is ready $(document).one('ready', function () { localStorage.clear(); });
回答5:
Something like this should do:
function cleanLocalStorage() { for(key in localStorage) { delete localStorage[key]; } }
Be careful about using this, though, as the user may have other data stored in localStorage
and would probably be pretty ticked if you deleted that. I'd recommend either a) not storing the user's data in localStorage
or b) storing the user's account stuff in a single variable, and then clearing that instead of deleting all the keys in localStorage
.
Edit: As Lyn pointed out, you'll be good with localStorage.clear()
. My previous points still stand, however.