介绍

localStorage 为我们提供在浏览器中以键值对的方式保存数据的功能,存储在 localStorage 中的数据会一直保存,除非手动清理。

另外需要注意的是,localStorage 的键值对都是以字符串的形式存储的,如果 value 不是字符串类型,则会隐式转换为字符串。

使用

  1. localStorage.setItem("foo", "123456");
  2. localStorage.getItem("foo"); // "123456"
  3. localStorage.setItem("foo", 1);
  4. localStorage.getItem("foo"); // "1"
  5. localStorage.setItem("foo", true);
  6. localStorage.getItem("foo"); // "true"
  7. localStorage.setItem("foo", {a:1});
  8. localStorage.getItem("foo"); // "[object Object]"
  9. // 删除某一项
  10. localStorage.removeItem('foo');
  11. // 移除所有
  12. localStorage.clear();

window.onstorage

🚀 参考

监听其他页面的 localStorage 更新

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <input type="text" id="input" onchange="onChangeHandler(event)">
  10. <script>
  11. const inputEl = document.getElementById("input");
  12. window.onstorage = function (e) {
  13. inputEl.value = e.newValue;
  14. }
  15. function onChangeHandler(e) {
  16. localStorage.setItem("value", e.target.value);
  17. }
  18. </script>
  19. </body>
  20. </html>

⚠️ 修改 localStorage 的页面不会触发该事件。