在javascript中清除localStorage?

问题描述 投票:0回答:14

有没有办法在javascript中重置/清除浏览器的

localStorage

javascript local-storage
14个回答
1618
投票

用它来清除本地存储:

localStorage.clear();

265
投票

如果你想从用户的本地存储中删除特定的Item或变量,你可以使用

localStorage.removeItem("name_of_localStorage_variable_to_remove");

130
投票
window.localStorage.clear(); //try this to clear all local storage

19
投票

如果需要清除本地存储数据使用:

localStorage.clear()

要从本地存储中删除特定项目,请使用:

localStorage.removeItem('Item')

16
投票

本地存储附加在全局

window
上。当我们在 chrome devtools 中登录 localstorage 时,我们看到它具有以下 API:

我们可以使用以下 API 来删除项目:

  1. localStorage.clear()
    :清除整个本地存储
  2. localStorage.removeItem('myItem')
    :删除单个项目

14
投票

这里有一个函数,可以让您删除所有本地存储项目(但有例外)。您将需要 jQuery 来实现此功能。您可以下载要点

你可以这样称呼它

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

13
投票

如果您想清除存储在 localStorage 中的所有项目,则

localStorage.clear();

用它来清除所有存储的密钥。

如果您只想清除/删除特定的键/值,则可以使用 removeItem(key)

localStorage.removeItem('yourKey');

8
投票
localStorage.clear();

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

6
投票

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

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

是的,您可以(在某些情况下)仅检查 localStorage 是否是 window 对象的成员。但是,如果您尝试访问索引“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);
}

3
投票

这里的代码给出了不想删除的键字符串列表,然后它从本地存储中的所有键中过滤掉这些键,然后删除其他键。

const allKeys = Object.keys(localStorage);

const toBeDeleted = allKeys.filter(value => {
  return !this.doNotDeleteList.includes(value);
});

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});

2
投票

清除会话存储

sessionStorage.clear();

2
投票

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

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');
};

它向窗口添加一个事件监听器,以检测选项卡关闭,并在关闭之前清除选项卡的 localStorage(指定键)。它不会清除其他选项卡上的 localStorage(相同密钥)。

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

所以,

  1. 只要用户保持打开一个选项卡,用户就可以利用本地存储缓存,并且
  2. 关闭所有选项卡后,localStorage将不会出现在新的 标签。

1
投票

这是一个简单的代码,将使用 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,则您的本地存储已被清除。


1
投票

手动按钮:

<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>
© www.soinside.com 2019 - 2024. All rights reserved.