javascript - 打开暗模式时出现多个错误
问题描述
我正在尝试创建一个暗模式切换按钮,一切顺利。暗模式在我的网站上运行,但是当我刷新页面或转到其他帖子时,我应该再次打开按钮。这是我在我的网站上使用的简化代码,https://codepen.io/pen/?template=poyYapw。另外,myFunction1
在我的网站上不起作用,我不知道为什么。myFunction1
正在开发 codepen、w3schools 等,但它不适用于我的网站。谁能给我一个javascript函数来解决这两个问题。
解决方案
我建议使用 localStorage。
您可能不需要,但有一种方法可以检测暗模式:如何使用 JavaScript 检测暗模式?
如果您使用检测,请将检测到暗模式的布尔值保存到 localStorage。
检测在这里不起作用,但它应该在您的网站上。
var dark = localStorage.getItem("darkmode") || "false";
var detected = localStorage.getItem("dmodedetected") || "false";
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches & detected == "false") {
document.body.classList.add("darkmode");
}
detected = true;
localStorage.setItem("dmodedetected", "true");
function toggledmode() {
if (dark == "false") {
dark = "true";
document.body.classList.remove("darkmode");
}
else {
dark = "false";
document.body.classList.add("darkmode");
}
localStorage.setItem("darkmode", dark);
}
body {
background-color: white;
}
body.darkmode {
background-color: black;
}
<html>
<body>
<button onclick="toggledmode()">Toggle</button>
<script>
</script>
</body>
</html>
推荐阅读
- excel - 目标数据上的动态 Excel 超链接
- scala - 当akka actor系统终止时如何运行预定的功能
- tomcat8 - Apache Tomcat 8.5.40 临时目录中的 safeToDelete.tmp 文件的目的是什么?
- angularjs - 试图编写一个逻辑来使用浏览器后退按钮单击但在 $on 内部无法找到“this”
- python - 使用 sklearn.model_selection 拆分不平衡的数据集
- python - 在 Ubuntu 中从 excel 文件创建多个用户帐户的 Python 脚本
- css - ng-deep 正在影响兄弟组件
- ios - 关于属性值 iOS/Swift 的 UI 测试
- powershell - 使用 powershell 为特定机器/用户共享文件夹
- javascript - 使用 Qlik 扩展导出整个 Qlik 报表