如何让javascript定时器在不查看选项卡/窗口时停止

How to get javascript Timer to stop when not viewing tab/window

本文关键字:选项 窗口 javascript 定时器      更新时间:2024-01-30

我正在运行一个带有计时器的页面,我使用该计时器在页面的iframe中运行,这样我就知道有人在那里,实际上窗口处于焦点状态,注意屏幕,如果离开,则暂停计时器,直到重新查看窗口或处于焦点状态。

我有4个定时器文件:timer.css timer.js timer.php&timerb.js

我相信我会在下面的文件和代码中执行它,但这就是我陷入困境的地方,因为我不知道该添加什么或在哪里添加它,而且还没有运气,为什么会在这里询问,所以请看一看,如果你能帮到我,请告诉我。

文件:timer.js

function adTimer() {
  timer++;
  if(timer == fulltimer) {
    var show="Click "+key;
    $("#buttons").fadeIn();
    $("#timer").html(show);
  }
  else {
    setTimeout(adTimer, 1000);
  }
  $("#bar").width((timer/fulltimer)*200);
}

这对你来说已经足够了:

$(window).blur(function(){
  //your code for inactive
});
$(window).focus(function(){
  //your code for active
});

或非jQuery解决方案(https://stackoverflow.com/a/1760283)

window.onblur = function () { 
  //your code for inactive
}; 
window.onfocus = function () { 
  //your code for active
}; 

如果没有,请尝试页面可见性API(此处已给出答案https://stackoverflow.com/a/1060034)

只是想知道,如果JQuery已经提供了超时,为什么所有这些实现都会发生。您是否尝试使用设置超时。http://www.sitepoint.com/settimeout-example/