You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Local Storage保存切换类的状态?

如何使用Local Storage保存切换类的状态?

嘿,我来帮你搞定这个问题!你现在已经有了切换类的基础代码,要把状态存在Local Storage里并让全站都生效其实很简单,分两步来就行:

一、页面加载时恢复之前的状态

当用户打开网站的任意页面时,我们要先从Local Storage里读取之前保存的状态,然后把对应的元素设置成正确的样式。代码可以这么写:

// 等页面DOM加载完成后执行
window.addEventListener('DOMContentLoaded', function() {
  // 替换成你实际要操作的元素ID
  var targetElement = document.getElementById('your-element-id');
  // 从Local Storage读取状态,默认设为未启用(没加crt类)
  var isCrtEnabled = localStorage.getItem('crtEnabled') === 'true';
  
  if (isCrtEnabled) {
    targetElement.classList.add('crt');
  } else {
    targetElement.classList.remove('crt');
  }
});

二、修改切换函数,保存状态到Local Storage

每次用户点击切换按钮时,除了切换类,还要把当前的状态存到Local Storage里,这样下次打开页面或者跳转到其他页面时,状态就能保留了。调整后的切换函数如下:

function myFunction() {
  // 同样替换成你实际的元素ID
  var targetElement = document.getElementById('your-element-id');
  // 切换crt类
  targetElement.classList.toggle('crt');
  // 获取当前是否启用了crt类,转成字符串存到Local Storage(因为Local Storage只能存字符串)
  var currentState = targetElement.classList.contains('crt');
  localStorage.setItem('crtEnabled', currentState.toString());
}

几个小提醒:

  • 一定要确保你的目标元素有唯一的id,不然getElementById找不到对应的元素,代码就没用啦。
  • Local Storage是和你的域名绑定的,所以同一域名下的所有页面都能读取到这个保存的状态,完美实现全站同步。
  • Local Storage只能存储字符串类型的数据,所以我们要把布尔值转成字符串再存储,读取的时候再通过判断字符串是否为'true'来还原状态。

备注:内容来源于stack exchange,提问作者Rock Lobster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:23:12