Я не совсем уверен, чего вы пытаетесь достичь sh, но это можно сделать гораздо проще. Вы можете просто добавить событие click к кнопке, которая запускает вашу функцию toggle()
и добавляет / удаляет класс из элемента body
.
РЕДАКТИРОВАТЬ: я обновил свой ответ на основе вашего комментария. Вместо использования hasAttribute
в вашем состоянии, я думаю, вам нужно getAttribute
.
var darkButton = document.getElementById("dark-mode");
darkButton.addEventListener("click", toggle);
function toggle() {
var bodyElement = document.querySelector("body");
bodyElement.classList.toggle("dark-mode");
var meta = document.querySelector("meta[name=theme-color]");
if (meta.getAttribute("content") === "#ffffff") {
console.log(meta.getAttribute("content"));
meta.setAttribute("content", "#10101c");
} else {
console.log(meta.getAttribute("content"));
meta.setAttribute("content", "#ffffff");
}
}
body {
padding: 25px;
background-color: #ddd;
color: black;
font-size: 25px;
}
.btn {
background: white;
border: 1px solid #10101c;
color: grey;
}
.dark-mode {
background-color: #10101c;
color: #778899;
}
.dark-mode .btn {
background: #10101c;
color: red;
border: 1px solid #002e43;
}
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
</head>
<body>
<h2>Toggle Dark/Light Mode</h2>
<p>Click the button to toggle between dark and light mode for this page.</p>
<button id="dark-mode" class="btn">Toggle dark mode</button>
</body>