Javascript jQuery-仅当窗口处于活动状态时才执行计时器

Javascript jQuery-仅当窗口处于活动状态时才执行计时器,javascript,jquery,timer,Javascript,Jquery,Timer,我正在尝试这样做,每当有人点击我的链接,它就会打开一个新的页面。一旦页面被打开,我想要一个进度条和一个计时器倒计时到零 问题是,我只希望在窗口处于活动状态时倒计时和进度条倒计时/运行。当窗口/选项卡未激活时,我希望计时器/进度条停止 我不能让它工作。我不知道我做错了什么 这是我的代码: var time = <?php echo $time; ?> $(function() { $('#iframe').load(function() { st

我正在尝试这样做,每当有人点击我的链接,它就会打开一个新的页面。一旦页面被打开,我想要一个进度条和一个计时器倒计时到零

问题是,我只希望在窗口处于活动状态时倒计时和进度条倒计时/运行。当窗口/选项卡未激活时,我希望计时器/进度条停止

我不能让它工作。我不知道我做错了什么

这是我的代码:

var time = <?php echo $time; ?>
$(function() {
        $('#iframe').load(function() {
            startCounter();

            $('#iframe').unbind('load');
        });
    });
    var isActive = true;
    window.onfocus = function() { isActive = true; };
    window.onblur = function() { isActive = false; };



    function checkfocus() {
        if(isActive = true){
            time=time-1;        
        } else {

        }   

    }
    function startCounter() {
        $('#counter').fadeOut('fast');
        setTimeout("$('#counter').fadeIn('fast')",1050);
        setTimeout("runCounter()",1000);

    }

    function runCounter() {

        if(time==0){
            $('#counter').html('<button class="butn blue" onclick="<?php echo $creditButtonName; ?>();">Click here to get credited!</button>');
        }
        else {
            $('#counter').html('You must view this advertisement for ' + time + ' more seconds!');
            startBar();                                                                     
            setTimeout("checkfocus()", 1000);   
            setTimeout("runCounter()",1000);

        }


    }


function startBar(){
    $('#bar').animate({
        width:'100%'
    }, <?php echo $time; ?>000);
}
此时,计时器将倒数计时。当窗口处于非活动状态或其他情况时,不停止


我的另一个问题是:如何才能做到这一点?当窗口不活动时,进度条也会停止动画,然后在窗口活动时重新启动?

您可能想检查这个插件,它比window更可靠地检测页面可见性。onfocus/window.onblur:而不是使用对焦的定时检查,使用onfocus功能保持所有功能和流程处于活动状态。它将自动解决您的问题。ifisActive=true{这是赋值,而不是比较,并且将始终计算为true。您应该使用ifisActive==true{请注意双等号。投票结束,因为这似乎只是一个打字错误问题。这个问题似乎离题了,因为它是关于代码中的一个打字错误引起的问题。@AnthonyGrist什么打字错误?