2014-02-12 28 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