2012-05-21 84 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

這將如何產生與我給出的例子不同的結果? :■ –

相關問題