2012-05-21 85 views
2

我意识到,你可以使用这样的事情很容易地检查重点:在Javascript中,如何检测浏览器窗口在视图中?

var hasFocus = true; 
$(window).blur(function(){ 
    hasFocus = false; 
}); 
$(window).focus(function(){ 
    hasFocus = true; 
}); 

然而,这仍然将等于假,例如当用户有浏览器窗口的第二屏幕上打开的工作时第一个屏幕在不同的应用程序。

这是用于报告实时数据的实时应用程序,并且我不希望在用户在选项卡中应用程序或最小化应用程序时进行长轮询,但我确实想要在运行时进行轮询窗口在视图中(即使它没有被聚焦)。

有没有办法检查窗口是否显示? (在较旧的浏览器中工作最好?)

+0

afaik,当窗口/选项卡未聚焦时,某些浏览器自然减慢或停止计时器。 – Joseph

+0

http://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active – goat

+0

不是我在找什么,因为实际上,我不想只关注我想要的内容。 –

回答

1
var hasFocus = true; 
$(window) 
.focus(function(eventObject){ 
    eventObject.stopPropagation(); 
    hasFocus = true; 
}) 
.blur(function(eventObject){ 
    eventObject.stopPropagation(); 
    hasFocus = false; 
}); 
+0

这将如何产生与我给出的例子不同的结果? :■ –

相关问题