根据用户的当地时间改变身体类别

时间:2011-01-10 23:50:55

标签: javascript html

如果是早上6点到下午5点,我正在尝试添加一个“天”的正文课程,如果是“其他”,则根据用户的当地时间添加“夜晚”。

我尝试了以下但是没有用。有什么想法吗?

头脑中:

<script>
function setTimesStyles() {
    var currentTime = new Date().getHours();
    if(currentTime > 5 && currentTime < 17) {
        document.body.className = 'day';
    }
    else {
        document.body.className = 'night';
    }
}
</script>

身体:

<body onload="setTimeStyles();">

此外,是否有更优雅的方式来实现我的需求?

这个网站是Wordpress btw。

1 个答案:

答案 0 :(得分:1)

您的功能中存在输入错误

function setTimesStyles() {  
    ...
}

应该是

function setTimeStyles() {  
    ...
}

进行上述更改或更新您的正文调用是该函数的确切拼写。

除此之外,我还会使用一些更为不具体的东西来设置body标签的类名。而不是直接调用函数。我建议使用其中一个javascript框架来检测DOM何时可以遍历。一旦您知道DOM已经构建,您就可以执行必要的代码。一个例子是jquery的ready函数,您可以通过以下方式将其绑定到:

$(document).ready(function() {
    setTimeStyles();
    ... // or any other code you want to execute when the DOM is ready.
});

框架抽象了许多关于让某些东西在不同浏览器中工作的细节。以更加不引人注目的方式做事还有一个额外的好处,就是让你更好地分离你的javascript和HTML。