在javascript中清除localStorage?

Bni*_*las 705 javascript local-storage

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

Dig*_*ane 1310

用它来清除localStorage:

localStorage.clear();
Run Code Online (Sandbox Code Playgroud)

  • `clear()`将删除您所在的特定域中的所有localStorage键和值.由于CORS,Javascript无法从任何其他域获取localStorage值. (14认同)
  • @ digital-plane这会清除特定域或所有存储的本地存储吗? (10认同)
  • @BakedInhalf完全没有.也许你的应用程序再次设置它? (6认同)
  • 我的应用程序启动时调用localStorage.clear(),但即使关闭浏览器,清除缓存等,数据仍然存在.我知道这是因为我在我的模型上将一个"实例"属性设置为初始化时的随机数,并且对于给定的id,实例属性始终是相同的. (5认同)
  • @BakedInhalf 是对的,它会一直保留到您硬刷新页面为止。当您清除本地存储并立即填充它时,它会恢复以前的内容并向其中添加新项目。当您清除 localStorage 并进行硬刷新时,它是空的,您可以再次开始填充它。 (2认同)

Aje*_*ani 182

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

localStorage.removeItem("name of localStorage variable you want to remove");
Run Code Online (Sandbox Code Playgroud)

  • @learner所以你想**删除除特定键之外的所有键**,对吧?为此,您可以执行类似“var key;”的操作 for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != certainKey){ localStorage.removeItem(key); } }` (2认同)
  • 也有可能:取值,清零再设置值,更通用。`let tmp = localStorage.getItem('<你的名字>'); localStorage.clear(); localStorage.setItem('<你的名字>')` (2认同)

Nea*_*eal 108

window.localStorage.clear(); //try this to clear all local storage
Run Code Online (Sandbox Code Playgroud)


小智 19

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

localStorage.clear()
Run Code Online (Sandbox Code Playgroud)

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

localStorage.removeItem('Item')
Run Code Online (Sandbox Code Playgroud)


Chr*_*uth 11

这是一个允许您删除所有localStorage项目的函数.你需要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);
    }
  }
};
Run Code Online (Sandbox Code Playgroud)


小智 11

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

localStorage.clear();
Run Code Online (Sandbox Code Playgroud)

用于清除所有存储的密钥。

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

localStorage.removeItem('yourKey');
Run Code Online (Sandbox Code Playgroud)


Wil*_*een 9

Localstorage 附加在全局window. 当我们在 chrome devtools 中记录 localstorage 时,我们看到它具有以下 API:

在此处输入图片说明

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

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


Jac*_*fin 6

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

var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};
Run Code Online (Sandbox Code Playgroud)

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

if (localStorageEnabled) localStorage.clear();
Run Code Online (Sandbox Code Playgroud)

例如,您可以像这样在 webkit 浏览器中发生错误后清除 localStorage。

// clears the local storage upon error
if (localStorageEnabled)
  window.onerror = localStorage.clear.bind(localStorage);
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,您需要 ,.bind(window)因为没有它,localStorage.clear函数将在window对象的上下文中运行,而不是localStorage对象使其静默失败。为了证明这一点,请看下面的例子:

window.onerror = localStorage.clear;
Run Code Online (Sandbox Code Playgroud)

是相同的:

window.onerror = function(){
    localStorage.clear.call(window);
}
Run Code Online (Sandbox Code Playgroud)


小智 6

localStorage.clear();
Run Code Online (Sandbox Code Playgroud)

或者

window.localStorage.clear();
Run Code Online (Sandbox Code Playgroud)

清除特定项目

window.localStorage.removeItem("item_name");
Run Code Online (Sandbox Code Playgroud)

要按 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;
                }
            });
Run Code Online (Sandbox Code Playgroud)