Javascript 网页加载时,页面加载功能(js)不工作

Javascript 网页加载时,页面加载功能(js)不工作,javascript,html,Javascript,Html,我一直试图找出如何调用我的函数,该函数位于一个在页面加载时启动的函数中,以设置暗模式 如果有人能帮我,我将非常感激 这是我的js文件: (function() { var darkSwitch = document.getElementById("darkSwitch"); if (darkSwitch) { initTheme(); darkSwitch.addEventListener("change", function(ev

我一直试图找出如何调用我的函数,该函数位于一个在页面加载时启动的函数中,以设置暗模式

如果有人能帮我,我将非常感激

这是我的js文件:

(function() {
  var darkSwitch = document.getElementById("darkSwitch");
  if (darkSwitch) {
    initTheme();
    darkSwitch.addEventListener("change", function(event) {
      resetTheme();
    });
    function initTheme() {
      var darkThemeSelected =
        localStorage.getItem("darkSwitch") !== null &&
        localStorage.getItem("darkSwitch") === "dark";
      darkSwitch.checked = darkThemeSelected;
      darkThemeSelected
        ? document.body.setAttribute("data-theme", "dark")
        : document.body.removeAttribute("data-theme");
    }
    function resetTheme() {
      if (darkSwitch.checked) {
        document.body.setAttribute("data-theme", "dark");
        localStorage.setItem("darkSwitch", "dark");
      } else {
        document.body.removeAttribute("data-theme");
        localStorage.removeItem("darkSwitch");
      }
    }
  }
})();
js文件来自此GitHub:

我想您可以在页面加载时尝试在黑暗模式下加载。 这是你问题的解决办法

这里是它的文档:

<script>
    // Include this script near the top of your html
    var app = document.getElementsByTagName("BODY")[0];
    if (localStorage.lightMode == "dark") {
        app.setAttribute("data-light-mode", "dark");
    }
</script>

<h1>
    Dark Mode Toggle
</h1>
<p>Uses localStorage to store and apply the set light mode when page is loaded</p>
<button onclick="toggle_light_mode()">
    Toggle Light Mode
</button>

给你!此代码来自

HTML:

<script>
    // Include this script near the top of your html
    var app = document.getElementsByTagName("BODY")[0];
    if (localStorage.lightMode == "dark") {
        app.setAttribute("data-light-mode", "dark");
    }
</script>

<h1>
    Dark Mode Toggle
</h1>
<p>Uses localStorage to store and apply the set light mode when page is loaded</p>
<button onclick="toggle_light_mode()">
    Toggle Light Mode
</button>

JS


body {
    transition: background-color 0.3s;
    text-align: center;
    font-family: sans-serif;
    padding-top: 3em;
}

h1 {
    font-weight: normal;
}

button {
    padding: 1em;
    font-size: 1em;
    background: #000;
    color: #fff;
    border: none;
    cursor: pointer;
    transition: .3s;
}

button:hover {
    opacity:.5;
}

body[data-light-mode="dark"] {
    background-color: #000;
    color: #eee;
}
body[data-light-mode="dark"] button {
    background-color: #fff;
    color: #000;
}


    function toggle_light_mode() {

        var app = document.getElementsByTagName("BODY")[0];

        if (localStorage.lightMode == "dark") {
            localStorage.lightMode = "light";
            app.setAttribute("data-light-mode", "light");
        } else {
            localStorage.lightMode = "dark";
            app.setAttribute("data-light-mode", "dark");
        }
        console.log("lightMode = " + localStorage.lightMode);
    }

我想你可以在页面加载时尝试在黑暗模式下加载。 这是你问题的解决办法

这里是它的文档:

<script>
    // Include this script near the top of your html
    var app = document.getElementsByTagName("BODY")[0];
    if (localStorage.lightMode == "dark") {
        app.setAttribute("data-light-mode", "dark");
    }
</script>

<h1>
    Dark Mode Toggle
</h1>
<p>Uses localStorage to store and apply the set light mode when page is loaded</p>
<button onclick="toggle_light_mode()">
    Toggle Light Mode
</button>

给你!此代码来自

HTML:

<script>
    // Include this script near the top of your html
    var app = document.getElementsByTagName("BODY")[0];
    if (localStorage.lightMode == "dark") {
        app.setAttribute("data-light-mode", "dark");
    }
</script>

<h1>
    Dark Mode Toggle
</h1>
<p>Uses localStorage to store and apply the set light mode when page is loaded</p>
<button onclick="toggle_light_mode()">
    Toggle Light Mode
</button>

JS


body {
    transition: background-color 0.3s;
    text-align: center;
    font-family: sans-serif;
    padding-top: 3em;
}

h1 {
    font-weight: normal;
}

button {
    padding: 1em;
    font-size: 1em;
    background: #000;
    color: #fff;
    border: none;
    cursor: pointer;
    transition: .3s;
}

button:hover {
    opacity:.5;
}

body[data-light-mode="dark"] {
    background-color: #000;
    color: #eee;
}
body[data-light-mode="dark"] button {
    background-color: #fff;
    color: #000;
}


    function toggle_light_mode() {

        var app = document.getElementsByTagName("BODY")[0];

        if (localStorage.lightMode == "dark") {
            localStorage.lightMode = "light";
            app.setAttribute("data-light-mode", "light");
        } else {
            localStorage.lightMode = "dark";
            app.setAttribute("data-light-mode", "dark");
        }
        console.log("lightMode = " + localStorage.lightMode);
    }

不清楚具体问题在哪里,也不清楚浏览器开发工具控制台中抛出了哪些错误。注意在
if()
中声明函数是一种非常糟糕的做法。如果您想调用
resetTheme
,例如在包装器函数之外,您应该在窗口-
window.resetTheme=function()上分配它{…
不清楚具体问题在哪里,也不清楚浏览器开发工具控制台中抛出了哪些错误。请注意,在
if()中声明函数是一种非常糟糕的做法。
如果要调用
resetTheme
例如在包装函数之外,则应在窗口上分配它-
window.resetTheme=function(){…