清除localStorage

有没有办法在javascript中重置用户localStorage?

使用这个来清除localStorage:

localStorage.clear(); 

如果要从用户的本地存储中删除特定的项目或variables,可以使用

 localStorage.removeItem("name of localStorage variable you want to remove"); 
 window.localStorage.clear(); //try this to clear all local storage 

我想clear(); 删除所有的本地存储数据,但是如果你只需要删除一个项目,你可以使用:

 window.localStorage.removeItem("item_name"); 

这是一个function,可以让你删除所有localStorage项目,例外。 你将需要jQuery的这个function。 你可以下载的要点 。

你可以像这样调用clearStorageExcept(['exceptionOne','exceptionTwo'])

 clearStorageExcept = function(exceptions){ var storage = localStorage; var keys = []; var exceptions = [].concat(exceptions); //prevent undefined //get storage keys $.each(localStorage, function(key, val){ keys.push(key); }); //loop through keys for( i=0; i<keys.length; i++ ){ var key = keys[i]; var deleteItem = true; //check if key excluded for( j=0; j<exceptions.length; j++ ){ var exception = exceptions[j]; if( key == exception ){ deleteItem = false; } } //delete key if( deleteItem ){ localStorage.removeItem(key); } } } 

首先,您需要检查以确保启用了localStorage。 我会推荐这样做:

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

是的,你可以(在某些情况下)检查localStorage是否是窗口对象的成员。 但是,iframe沙箱选项(除其他外)将会抛出exception,如果您甚至尝试访问索引“localStorage”。 因此,出于最佳实践原因,这是检查localStorage是否启用的最佳方法。 然后,你可以像这样清除localStorage。

 if (localStorageEnabled) localStorage.clear(); 

例如,在webkit浏览器发生错误之后,可以清除localStorage。

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

在上面的例子中,你需要.bind(window)因为没有它, localStorage.clear函数将在window对象的上下文中运行,而不是localStorage对象,从而导致它的安静失败。 为了演示这个,看下面的例子:

 window.onerror = localStorage.clear; 

是相同的:

 window.onerror = function(){ localStorage.clear.call(window); } 

如果以上所有都不起作用? 那么这个答案就像一个魅力。
https://stackoverflow.com/a/45057698/5902146