2014-02-12 72 views
0

我正在編寫一個基於回合的遊戲,其中服務器可能隨機發送消息給javascript客戶端。當客戶收到這些消息時,它會在文件標題處加上星號。我的問題是,如何檢測用戶正在查看該頁面,以便在用戶看到新消息後立即刪除星號?例如,Gmail和Facebook如何做到這一點?我聽說不能在body對象上放置onfocus屬性。使用JavaScript檢測用戶活動

我也想知道爲什麼身體沒有聚焦的屬性。

+0

'document.hidden'或'document.visibilityState'。 [support](http://caniuse.com/#feat=pagevisibility) – Ryan

回答

1

爲什麼不偵聽windowfocusblur事件?

window.addEventListener('focus', onFocus); // window has focus 
window.addEventListener('blur', onBlur); // window lost focus 
+0

經過測試,適用於firefox 26,chromium和konqueror! :) – fonini

2

您可以檢查document.hidden,或使用document.visibilityStatefor more options

Support is pretty good.

+2

可以在https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API上看到很好的總結 – Bart

+0

我可以當我最小化窗口時,無法使用firefox工作。它只在我更改標籤頁時觸發。 – fonini