Clearing localStorage in javascript?
是否有任何方法可以重置/清除浏览器在javascript中的本地存储?
使用此项清除本地存储:
1 | localStorage.clear(); |
如果要从用户的本地存储中删除特定项或变量,可以使用
1 | localStorage.removeItem("name of localStorage variable you want to remove"); |
1 | window.localStorage.clear(); //try this to clear all local storage |
这里有一个函数,允许您删除所有本地存储项,但有例外。您将需要jquery来执行此函数。你可以下载注册表。
你可以这样称呼它
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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); } } }; |
首先,您需要检查以确保启用了本地存储。我建议这样做:
1 2 | var localStorageEnabled = false; try { localStorageEnabled = !!localStorage; } catch(e) {}; |
是的,您可以(在某些情况下)检查localstorage是否是window对象的成员。但是,如果您甚至尝试访问索引"localstorage",则有iframe沙盒选项(以及其他选项)会引发异常。因此,出于最佳实践的原因,这是检查是否启用了本地存储的最佳方法。然后,您可以像这样清除本地存储。
1 | if (localStorageEnabled) localStorage.clear(); |
例如,在WebKit浏览器中发生错误后,可以清除本地存储。
1 2 3 | // clears the local storage upon error if (localStorageEnabled) window.onerror = localStorage.clear.bind(localStorage); |
在上面的例子中,您需要
1 | window.onerror = localStorage.clear; |
相同:
1 2 3 | window.onerror = function(){ localStorage.clear.call(window); } |
1 | localStorage.clear(); |
或
10清除特定项目
1 | window.localStorage.removeItem("item_name"); |
To remove particular value by id :
1 2 3 4 5 6 7 8 | 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; } }); |
本地存储连接到全局
我们可以使用以下API删除项目: