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


当前回答

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

const allKeys = Object.keys(localStorage);

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

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

其他回答

这里有一个函数,允许您删除所有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);
    }
  }
};

手动按钮:

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

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

localStorage.removeItem("name of localStorage variable you want to remove");

清除sessionStorage

sessionStorage.clear();

本地存储附加在全局窗口上。当我们在chrome devtools中记录本地存储时,我们看到它具有以下API:

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

localStorage.clear():清除整个localStoragelocalStorage.removeItem('myItem'):删除单个项目