2011-11-08 101 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