如何在零后停止倒计时

How to stop countdown after zero

我尝试创建一个 javascript 倒计时然后重定向到另一个站点。

但是当它达到零并加载页面时,倒计时开始计数 -1-2 等,直到重定向到另一个页面。

这是我尝试过的:

function countdown(remaining) {
    if(remaining === 0)
        window.location = '<?php echo $link_redirect ?>';
    document.getElementById('countdown').innerHTML = remaining;
    setTimeout(function(){ countdown(remaining - 1); }, 1000);
};

您的页面加载需要一些时间,以便您的脚本能够连续执行。您可以在else部分编写计数器减少的代码。

function countdown(remaining) {
if(remaining === 0)
window.location = '<?php echo $link_redirect ?>';
else
{
    document.getElementById('countdown').innerHTML = remaining;
    setTimeout(function(){ countdown(remaining - 1); }, 1000);
}
};
function countdown(remaining) {
    if(remaining === 0){
        window.location = '<?php echo $link_redirect ?>';
    } else{
        document.getElementById('countdown').innerHTML = remaining;
        setTimeout(function(){ countdown(remaining - 1); }, 1000);
    }
};

countdown(20);
function countdown(remaining) {
  document.getElementById('countdown').innerHTML = remaining;
  if(remaining === 0) {
    //window.location = '<?php echo $link_redirect ?>';
    document.getElementById('countdown').innerHTML = "redirect"
  } else {
    setTimeout(function(){ countdown(remaining - 1); }, 1000);
  }
};
<div id="countdown">
</div>

简单的加上条件只在剩余大于0时倒计时

function countdown(remaining) {
    document.getElementById('countdown').innerHTML = remaining;
    if(remaining > 0) {
        setTimeout(function(){ countdown(remaining - 1); }, 1000);
    } else {
        window.location = '<?php echo $link_redirect ?>';
    }
;

您可以尝试我的示例,它运行良好:

$(function(){countdown1($('#countdown1').html());})
function countdown1(remaining) {
console.log('remaining is : ' + remaining);
    if(remaining === 0)
        window.location = '<?php echo $link_redirect ?>';
    $('#countdown1').html(remaining);
    setTimeout(function(){ countdown1(remaining - 1); }, 1000);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="countdown1">10</div>

可能使用匿名函数的主题变体

<div id='countdown'></div>
<script>
    (function( time, url ){

        /* variable used as a timer */
        var t=NaN;

        (function(){
            /* display current count */
            document.getElementById('countdown').innerHTML=time;

            /* invoke anonymous function every second */
            t=setTimeout( arguments.callee, 1000 );

            /* if the countdown has expired, clear the timer and redirect */
            if( time <= 0 ){
                clearTimeout( t );
                location.href=url;
            }
            /* reduce count */
            time--;
        })();
    /* configure time and url here */
    })( 10, 'http://www.example.com' );
</script>