有没有办法用javascript重置/清除浏览器的localStorage?
当前回答
首先,您需要检查以确保已启用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);
}
其他回答
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;
}
});
如果需要清除本地存储数据,请使用:
localStorage.clear()
要从本地存储中删除特定项目,请执行以下操作:
localStorage.removeItem('Item')
window.localStorage.clear(); //try this to clear all local storage
如果要清除存储在localStorage中的所有项目,则
localStorage.clear();
使用此选项清除所有存储的密钥。
如果您只想清除/删除特定的键/值,则可以使用removeItem(键)。
localStorage.removeItem('yourKey');
这里的代码给出了一个不想删除的键字符串列表,然后从本地存储中的所有键中筛选这些键,然后删除其他键。
const allKeys = Object.keys(localStorage);
const toBeDeleted = allKeys.filter(value => {
return !this.doNotDeleteList.includes(value);
});
toBeDeleted.forEach(value => {
localStorage.removeItem(value);
});
推荐文章
- 如何在Typescript中解析JSON字符串
- Javascript reduce()在对象
- 在angularJS中& vs @和=的区别是什么
- 错误"Uncaught SyntaxError:意外的标记与JSON.parse"
- JavaScript中的querySelector和querySelectorAll vs getElementsByClassName和getElementById
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError:
- [].slice的解释。调用javascript?