首页 > 解决方案 > IE 无法评估第二个 if 条件 (&&)

问题描述

所以我有这个脚本:

        function makeActive() {
            var element, name, arr;
            element = document.getElementById("liveChat");
            name = "active";
            arr = element.className.split(" ");
            if (arr.indexOf(name) == -1) {
                element.className += " " + name;
            }
        }

        var currentTime = new Date();
        var currentTimeFormatted = currentTime.toLocaleTimeString();

        if(currentTimeFormatted >= '08:00:00' && currentTimeFormatted <= '16:30:00'){
            makeActive();
        }

这在 Chrome 中完美运行,但在 IE 中没有添加该类。

如果我删除

&& currentTimeFormatted <= '16:30:00'

IE 也添加了类。为什么要添加第二个条件,在 IE 中破坏这个脚本?

标签: javascriptif-statementinternet-explorer

解决方案


为了使这比使用 && 和 || 更容易一点 混合,或者如果您的值存储在静态文件中的某个位置等。您可以通过将每个部分相乘来创建一种伪时间。

例如。

const cTime = new Date();
const ptime =
  cTime.getHours() * 10000 +
  cTime.getMinutes() * 100 +
  cTime.getSeconds();
if (ptime >= 80000 && ptime <= 163000) {
  console.log("Active");
} else {
  console.log("InActive");
}


推荐阅读