2015-06-18 58 views
0

我使用下面的函數顯示倒計數,並希望在計數器達到0時重新加載頁面。我剛坐下看着櫃檯打到0,什麼也沒有發生。是不是location.reload()假設刷新頁面?當倒計數達到0時用Javascript重新載入頁面

function secondPassed() { 

     var numDays = Math.floor(seconds/86400); 
     var numHours = Math.floor((seconds % 86400)/3600); 
     var numMinutes = Math.floor(((seconds % 86400) % 3600)/60); 
     var numSeconds = ((seconds % 86400) % 3600) % 60; 

     if (numSeconds < 10) { 
       numSeconds = "0" + numSeconds; 
     } 

     document.getElementById('count').innerHTML = "<span class='fa fa-clock-o' aria-hidden='true'></span> " +('' + numDays).slice(-2) + "d " + "" +('' + numHours).slice(-2) + "h " + "" + ('' + numMinutes).slice(-2) + "m " + "" +('' + numSeconds).slice(-2) + "s "; 

     if (seconds <= 0) { 
       clearInterval(countdownTimer); 
       location.reload(); 
     } else { 
       seconds--; 
     } 
} 


setInterval(function() { 
secondPassed(); 
}, 1000); 
+0

您是否在控制檯中發現錯誤?我已經用你的代碼做了一個jsfiddle,初始化'seconds'變量,並將'countdownTimer'賦值給setInterval函數)並且它工作。工作jsFiddle:[https://jsfiddle.net/fabio_silva/5sgnc818/](https://jsfiddle.net/fabio_silva/5sgnc818/) –

+0

我沒有看,我沒有打開該頁面了。我會尋找任何錯誤。 – Ciprian

+0

你的'countdownTimer'是* undefined *當你嘗試'clearInterval'因此'reload'沒有被調用,因爲執行被中止。 – dreyescat

回答

1

我提拔我的評論回答,因爲它實際上描述了這個問題。

countdownTimer不確定當你試圖clearInterval,因此reload不叫,因爲執行被中止。

只要刪除違規的clearInterval,它會工作。

if (seconds <= 0) { 
      // >> clearInterval(countdownTimer); 
      location.reload(); 
    } else { 
      seconds--; 
    } 
3

嘗試這樣

/* 
    if true page will always reload from server 
    else page will load from cache 
*/ 
window.location.reload(true); 
+1

我不認爲這是問題...我不認爲它需要從服務器重新加載。 – dreyescat

相關問題