有没有办法用javascript重置/清除浏览器的localStorage?


当前回答

localStorage.clear();

or

window.localStorage.clear();

清除特定项目

window.localStorage.removeItem("item_name");

要按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;
                }
            });

其他回答

下面是一个简单的代码,它将使用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>

要确认本地存储是否为空,请使用以下代码:

<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>

如果返回null,则清除本地存储。

如果有人正在寻找在浏览器选项卡关闭时清除localStorage的方法,下面的代码是有效的。(示例用例:将一些复制的数据保存在localStoarge中,以粘贴到另一个选项卡上,但同时,需要缓存在所有以前的选项卡关闭时不显示在新选项卡上)

window.onbeforeunload=()=>{//获取具有指定密钥的localStorage项const storage=JSON.parse(localStorage.getItem('MY_KEY'));//清除缓存(如果存在)if(!isNil(存储))localStorage.removeItem('MY_KEY');};

它将一个eventListener添加到窗口中,以检测选项卡关闭,并在关闭之前清除选项卡的localStorage(指定键)。它不会清除其他选项卡上的localStorage(相同密钥)。

这是一个很好的解决方案,如果我们想只在关闭的选项卡中清除localStorage,并保持其他选项卡上的localStorage(相同键)不变。

因此

只要用户打开一个选项卡,用户就可以利用localStorage缓存,并且关闭所有选项卡后,localStorage将不会出现在新的选项卡。

使用此选项清除localStorage:

localStorage.clear();

首先,您需要检查以确保已启用localStorage。我建议这样做:

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

是的,您可以(在某些情况下)检查localStorage是否是窗口对象的成员。然而,如果您甚至试图访问索引“localStorage”,则会有iframe沙盒选项(以及其他选项)引发异常。因此,出于最佳实践的原因,这是检查是否启用了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);
}
window.localStorage.clear(); //try this to clear all local storage