如何保存深色/浅色模式切换的 cookie?

2023-11-26

我正在使用W3Schools 深色模式切换对于我的网站,它运行得很好。

但在我刷新页面后,就会显示默认视图“日间模式”。

This is 网页测试页。

如何设置 cookie,以便如果用户选择深色模式,则页面默认以深色模式打开?

另外,如何将其应用于整个网站,以便用户不必每次打开页面时都按按钮。


你可以使用localStorage为了这。

// On page load set the theme.
(function() {
  let onpageLoad = localStorage.getItem("theme") || "";
  let element = document.body;
  element.classList.add(onpageLoad);
  document.getElementById("theme").textContent =
    localStorage.getItem("theme") || "light";
})();

function themeToggle() {
  let element = document.body;
  element.classList.toggle("dark-mode");

  let theme = localStorage.getItem("theme");
  if (theme && theme === "dark-mode") {
    localStorage.setItem("theme", "");
  } else {
    localStorage.setItem("theme", "dark-mode");
  }

  document.getElementById("theme").textContent = localStorage.getItem("theme");
}

HTML:

<button type="button" onclick="themeToggle()">Theme Toggle</button>
<div id="theme"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保存深色/浅色模式切换的 cookie? 的相关文章

随机推荐

  • 如何在 Android Javadoc 中引用 XML 文件? [复制]

    这个问题在这里已经有答案了 有没有办法使用 JavaDoc 链接来引用 Android XML 文件res folder 就像是 link res values custom strings xml link com yourApp R l
  • 如何备份SQL Server代理作业?

    如何备份和恢复 SQL Server 2005 代理作业计划 msdb 数据库是所有作业所在的地方 它是系统数据库之一
  • add2virtualenv(virtualenv 包装器)不适用于 scipy

    我想创建一个没有全局 python 包的 virtualenv 但具有共享的 scipy 发行版 安装 scipy 需要相当长的时间 我不想太频繁地走过场 所以我跑add2virtualenv Library Python 2 7 site
  • 如何通过不可靠的网络同步媒体播放?

    我希望我可以在一台计算机上播放音乐或视频 并让第二台计算机同步播放相同的媒体 例如 我可以同时听到两台计算机的扬声器的声音 这听起来并不好笑 我想通过 Wi Fi 来完成此操作 但 Wi Fi 有点不可靠 从算法上来说 解决这个问题的最佳方
  • @Autowired 对象获取空值

    尝试建立一个项目 但通过 Spring 自动装配对象失败 package se hsr web public class TestRunner public static void main String args ContactDAO c
  • 使用 git 时 Mac/Windows 的文件权限问题

    我运行以下代码从 Windows git 存储库中提取文件 git pull Volumes sucho Desktop git setup 我按如下方式连接 Windows 目录 tell application Finder mount
  • 忽略 querySelectorAll 中的大小写敏感性

    我有这个代码 a href Click a a href Click a a href Click a a href Click a 现在 使用console log document querySelectorAll a href jav
  • “该节点不是使用 replSet 选项启动的”

    我正在学习MongoDB大学 s M101P 面向开发人员的 MongoDB课程 我在用连线虎 on MongoDB 3 2 我目前的主题是副本集 该课程要求我使用以下代码创建一个副本集 mongod replSet rs1 logpath
  • 对齐wpf选项卡控制条

    我正在尝试在右侧对齐选项卡控制条 需要明确的是 我希望选项卡位于顶部 tabstripplacement 但在右侧对齐 的标题TabItem位于类型面板中TabPanel 我们可以添加HorizontalAlignment Right 在资
  • Angular.js 和 Adsense

    我正在尝试在我的 angular js 应用程序上放置广告 我做了一些阅读 发现不可能只复制并粘贴正常的 adsense 代码 我听说你应该 用嵌入将其包装在指令中 我能找到的唯一示例是另一个 Stackoverflow 帖子 Angula
  • 从代码更改清单元数据

    我有一个使用广告的应用程序 广告 ID 通过元数据标签在清单 ID 中设置 在某些情况下 我想在启动应用程序时更改此标签 某些本地化版本的 ID 不同 我可以在代码中做到这一点吗 清单元数据无法在运行时更改 您应该查看您的广告库是否允许直接
  • Eclipse Android SDK - 构建工作区时出错

    我已使用 Android SDK Manager 更新了我的软件包 并单击 帮助 gt 检查更新并更新了已安装的插件 提示我重新启动eclipse 现在重新启动后 我收到以下错误代码 Building workspace has encou
  • 在 Swift SpriteKit 项目中播放声音?

    当我运行这段代码时 runAction SKAction playSoundFileNamed Click mp3 waitForCompletion false 我的应用程序崩溃了 由于未捕获的异常 NSInvalidArgumentEx
  • 如何使 jQuery UI 'draggable()' div 可拖动用于触摸屏?

    我有一个 jQuery 用户界面draggable 适用于 Firefox 和 Chrome 用户界面概念基本上是单击以创建 便利贴 类型的项目 基本上 我点击或点击div everything 100 高和宽 监听点击 并显示输入文本区域
  • 如何在每个 jupyter Notebook 内核之前运行 Python 代码

    假设我有一个代码片段 我想在每次打开 jupyter 笔记本时运行 在我的例子中 它打开 Spark 连接 假设我将该代码保存在 py 脚本中 启动 py sc This is a spark connection 我希望每次打开内核时都能
  • Spark Scala - java.util.NoSuchElementException 和数据清理

    我有过一次之前有类似问题 但我正在寻找一个普遍的答案 我在用火花核心LP获取电子邮件的情绪分数 有时 sentiment 在某些输入上崩溃 可能太长 可能有意外的字符 它没有告诉我它在某些情况下崩溃 只是返回Column sentiment
  • 产品处于应用程序计费托管和非托管状态

    我对 android 很陌生 我正在研究应用程序内计费 我的问题是添加应用程序内产品时托管和非托管状态的主要目的是什么 任何人都可以告诉我托管状态有什么用 非托管状态有什么用 托管和非托管之间的主要区别在于 托管购买只能购买一次 并且与购买
  • 何时更新审核字段? DDD

    我有一个会议对象 Meeting id name time CreatedBy UpdatedBy and a MeetingAssignee id MeetingID EmployeeId CreatedBy UpdatedBy 会议作为
  • Python-Wand 序列未从内存中清除

    如果我执行以下操作 for root dirs files in os walk myDir for myFile in files with Image filename myFile as img with Image image im
  • 如何保存深色/浅色模式切换的 cookie?

    我正在使用W3Schools 深色模式切换对于我的网站 它运行得很好 但在我刷新页面后 就会显示默认视图 日间模式 This is 网页测试页 如何设置 cookie 以便如果用户选择深色模式 则页面默认以深色模式打开 另外 如何将其应用于