首页 文章

在javascript中清除localStorage?

提问于
浏览
635

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

9 回答

  • 12

    我认为 clear(); 将删除所有本地存储数据,但如果您只需要删除一个项目,则可以使用:

    window.localStorage.removeItem("item_name");
    
  • 158
    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;
                    }
                });
    
  • 103

    首先,您需要检查以确保启用了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);
    }
    
  • 3

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

    enter image description here

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

    • localStorage.clear() :清除整个localstorage

    • localStorage.removeItem('myItem') :删除单个项目

  • -1

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

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

    //确保安装'store' package https://www.npmjs.com/package/store

    import 'store' from 'store';
    

    //然后在你的代码中添加以下两行:

    store.clearAll();
    localStorage.clear();
    
  • 1186

    这是一个允许您删除所有localStorage项目的函数 . 此功能需要jQuery . 你可以download the gist .

    你可以这样称呼它

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

    用它来清除localStorage:

    localStorage.clear();
    

相关问题