2015-06-18 53 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

相关问题