javascript - 如何为暗/亮模式切换保存 cookie?

标签 javascript html css

我正在使用 W3Scholls Dark Mode Toggle对于我的网站,它运行良好。
但就在我刷新页面后,会显示默认 View ,即日间模式。
这是Webpage Test Page.
如何设置 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>

关于javascript - 如何为暗/亮模式切换保存 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60037491/

相关文章:

javascript - 遇到情况时jquery设置 sibling 的填充

html - 无法使用背景图像显示带有垂直菜单的水平子菜单

javascript - 如何在 Javascript 中使用正则表达式提取可选查询参数

javascript - 存储和加载文件系统中的媒体到 Electron 应用程序

javascript - 混淆视听值得吗?

css - 调整 html 行的大小

javascript - 检测 html5 视频上的错误

javascript - 仅当我不通过 jQuery 附加它时才执行的脚本?

javascript - HTML 表格过滤和回流

jquery - Google Material 图标显示文本而不是图标