Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为两个单独的功能(暗光模式)设置本地存储_Javascript_Local Storage - Fatal编程技术网

Javascript 如何为两个单独的功能(暗光模式)设置本地存储

Javascript 如何为两个单独的功能(暗光模式)设置本地存储,javascript,local-storage,Javascript,Local Storage,这里是新手程序员。获得了需要的基本功能,但我对Javascript一无所知,但愿意学习。我从网络上到处借用代码。我在下班后开发我们的商业网站,因为我白天的工作是建筑监理,所以只能在晚上做。现在,我只需要能够将颜色主题选择存储在localStorage中,并在浏览器重新打开时调用它。这就是我选择本地存储的原因 我已经在localStorage上尝试过这些指南,但对于如何正确地进行调用和存储所选内容,我感到目瞪口呆。这两个按钮功能完美地改变了导航栏的颜色,并改变了最基本的颜色——主体颜色和字体颜色

这里是新手程序员。获得了需要的基本功能,但我对Javascript一无所知,但愿意学习。我从网络上到处借用代码。我在下班后开发我们的商业网站,因为我白天的工作是建筑监理,所以只能在晚上做。现在,我只需要能够将颜色主题选择存储在localStorage中,并在浏览器重新打开时调用它。这就是我选择本地存储的原因

我已经在localStorage上尝试过这些指南,但对于如何正确地进行调用和存储所选内容,我感到目瞪口呆。这两个按钮功能完美地改变了导航栏的颜色,并改变了最基本的颜色——主体颜色和字体颜色

// Light-Mode
function toggleLight() {
    var body = document.getElementById("body");
    var currentClass = body.className;
    body.className = currentClass == "dark-mode" ? "light-mode" : "light-mode";
    document.getElementById("nav").className = "navbar sticky-top navbar-expand-sm navbar-dark bg-dark";
    localStorage.setItem("theme", "light-mode")
}

//Dark-Mode        
function toggleDark() {
    var body = document.getElementById("body");
    var currentClass = body.className;
    body.className = currentClass == "light-mode" ? "dark-mode" : "dark-mode";
    document.getElementById("nav").className = "navbar sticky-top navbar-expand-sm navbar-light bg-light";
    localStorage.setItem("theme", "dark-mode")
}

我希望它能在重新加载浏览器时存储和回忆上次选择的颜色/主题,但似乎我缺少了一些主要的编码。任何帮助都将不胜感激。

在每个函数结束时,主题名称将保存在localStorage中。onLoad事件读取此值并调用相应的函数:

window.onload = () => {
    if (localStorage.getItem("theme") === "dark-mode") {
        toggleDark();
    } else {
        toggleLight(); // consider as default theme
    }
};
您使用localStorage.setItem存储主题,但从不使用调用它

页面加载时:

var body = document.getElementById("body");
body.className = local​Storage​.get​Item("theme");

作为一些一般性建议:1您的两个功能几乎相同。您可能想考虑使它们成为一个函数,以避免重复代码,并使用参数的光与黑暗。2你有两个三分之一不是真正起作用的。例如,currentClass==灯光模式?暗模式:暗模式;表示当前的课堂灯光模式是什么?然后将其设置为暗模式。否则,将其设置为暗模式。如果两种方法的结果都是一样的,为什么还要检查currentClass呢?再一次,只是一些指针。快乐编码!:链接到我正在处理的实际模板的画笔。塔克斯。我来看看。就像我说的,完全是编程新手。只知道网页设计的基础知识@TylerRoperi如果你在画笔上查看开发人员工具,你会发现主题存储得很好。你只需要回忆一下当地的情况​存储​.收到​谢谢,这个对我有用。感谢您的帮助@Marcelo