2011-11-08 48 views
0

好的,所以我一直在使用JavaScript的一点点,我试图得到它,以便网站背景根据时间,日夜而变化。但是看来,当我运行它跳过所有编码的页面,去else语句和运行的是javascript更改背景基于时间

这里是代码:

</body> 
<script type="text/javascript"> 
    var currentTime = new Date().getHours(); 
    if(5 < currentTime && currentTime < 18){ 
     if (document.body) { 
      document.body.background = 'images/bg-day.png'; 
     } 
    } else { 
     if (document.body) { 
      document.body.background = 'images/bg-night.png'; 
     } 
    } 
</script> 
</html> 
+1

你试过把你的代码放在'' –

+1

顺便说一句,你不需要'if(document.body)' – SLaks

+0

首先你在关闭html标签之前不关闭body标签。如果没有解决这个问题,用''看看设置背景是否有效。还要确保图像的路径正确(相对于你的html页面)。最后但并非最不重要的是,背景属性已被弃用,您应该使用css来代替。 – roberkules

回答

0

把所有的JS代码在

window.onload=function(){ 
    YOUR CODE HERE 
} 

运行它们

而且,使用
document.body.setAttribute("style","background-image: url(/images/xxx.png);");

代替

document.body.background=xxx; 

,因为当你改变css样式,浏览器会立即刷新元素。

+0

仍然没有工作,试图改变时间也没有占上风。 – user1030688

+0

OP说它每次都跳到其他地方,所以代码显然正在运行。 – SystemParadox

+1

setAttribute?我宁愿使用document.body.style.backgroundImage =“url(...)” – roberkules

0

您的确切代码对我来说工作正常。尝试做: document.write(currentTime);

查看getHours()等是否按预期工作。

此外,如果您手动设置currentTime会发生什么?

+0

不知道如何手动设置当前时间,但它返回正确的小时时间 – user1030688

+0

通过手动设置我的意思就是做一些事情如: currentTime = 6; – SystemParadox