I have an error with my Javascript code. I can’t toggle dark mode; isn’t working for some reason. I have tried many times to get this to work. Here’s my code:
Every page
// check for cookie
if localStorage("toggleDarkMode") {
var element = document.body;
element.classList.toggle("w3-dark-grey");
}
...
The settings page
// create cookie and dark mode
function toggleDarkMode() {
var element = document.body;
element.classList.toggle("w3-dark-grey");
localStorage.setItem("toggleDarkMode", "w3-dark-grey");
}
If you want to keep using localStorage, do what Thewebuser said. But I noticed that you commented “check for cookie” and “create a cookie” but localStorage is not a cookie. However, setting and checking for a cookie is slightly more complicated than localStorage.
let expiry = new Date();
expiry = expiry.getTime() + (365 * 24 * 60 * 60 * 1000); // A year from when it was set
document.cookie = `example=Hi; expires=${expiry.toUTCString()}; path=/`;
Getting the cookie:
function cookie(name) {
const value = document.cookie.match(RegExp(`(?:^|;\\s*)${name}=([^;]*)`));
return value ? value[1] : null;
}
Example (with cookie made previously):
function cookie(name) {
const value = document.cookie.match(RegExp(`(?:^|;\\s*)${name}=([^;]*)`));
return value ? value[1] : null;
}
console.log(cookie("example"));
// Output: Hi