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什么打字错误?