2013-12-09 14 views
-1

我想讓Javascript檢測一天中的時間,然後加載正確的CSS表格。除此之外,我需要它來替換圖像。Javascript和圖像更改,一天中的時間爲基礎

function getStylesheet() { 
     var currentTime = new Date().getHours(); 


     var square = "<img src='images/Image-square-night.gif' width='400' height='400' >" 

     if (20 <= currentTime&&currentTime <= 7) { 
     document.write("<link rel='stylesheet' href='layout-night.css' type='text/css'>"); 
     function sq(){ 
     if(document.getElementById("image-hold")){ 
      "image-hold".innerHTML = square 
     }} 
     if (8 <= currentTime&&currentTime <= 19){ 
      document.write("<link rel='stylesheet' href='layout-day.css' type='text/css'>")} 

     } 

} 
+1

還有呢?有什麼不工作?如果是這樣,它怎麼不起作用?你曾經調用過'getStylesheet'嗎?在頁面的主要解析過程中(因爲它使用'document.write'),您是否會在*之後進行該調用? –

+0

格式化您的代碼合理有助於您和我們閱讀它,最大限度地減少混淆和錯誤。 –

+0

除其他外,您在該代碼中有一個語法錯誤:在條件塊中有一個函數*聲明*。這在JavaScript中是不允許的,儘管一些(不是全部)瀏覽器可能會將它重寫爲一個函數表達式。 –

回答

0

第一if聲明似乎是錯誤的:

if (20 <= currentTime&&currentTime <= 7) { 

最有可能的應該是

if (
     (0 <= currentTime && currentTime < 8) || 
     (19 < currentTime && currentTime <= 24) 
) { 
    ... 
0

可能是這樣的:

function getStylesheet() { 
    // Creating LINK node 
    var link = document.createElement('link'); 
    link.rel = "stylesheet"; 
    link.type = "text/css"; 
    // Get current time hour 
    var currentTime = new Date().getHours();  
    if (20 <= currentTime && currentTime <= 7) { 
     link.href = 'layout-night.css'; 
     // replacing the image in this case 
     var square = "<img src='images/Image-square-night.gif' width='400' height='400' >"; 
     var imageHolder = document.getElementById("image-hold"); 
     if(imageHolder != null){ 
      imageHolder.innerHTML = square 
     } 
    } else { 
     link.href = 'layout-day.css'; 
    } 
    document.head.appendChild(link); 
} 
相關問題