我意识到您可以使用以下类似方法轻松检查焦点:
var hasFocus = true;
$(window).blur(function(){
hasFocus = false;
});
$(window).focus(function(){
hasFocus = true;
});
但是,例如,当用户在另一个应用程序中的第一个屏幕上工作时,用户在第二个屏幕上打开浏览器窗口时,这仍然等于false。
这是用于报告实时数据的实时应用程序,并且我不想在用户将应用程序放在选项卡中或最小化时进行长时间轮询,但是我确实希望在查看窗口时运行轮询(即使没有重点关注)。
有没有一种方法可以检查窗口是否为视图? (最好在较旧的浏览器中工作?)
最佳答案
var hasFocus = true;
$(window)
.focus(function(eventObject){
eventObject.stopPropagation();
hasFocus = true;
})
.blur(function(eventObject){
eventObject.stopPropagation();
hasFocus = false;
});