我正在编写一个基于回合的游戏,其中服务器可能随机发送消息给javascript客户端。当客户收到这些消息时,它会在文件标题处加上星号。我的问题是,如何检测用户正在查看该页面,以便在用户看到新消息后立即删除星号?例如,Gmail和Facebook如何做到这一点?我听说不能在body
对象上放置onfocus
属性。使用JavaScript检测用户活动
我也想知道为什么身体没有聚焦的属性。
我正在编写一个基于回合的游戏,其中服务器可能随机发送消息给javascript客户端。当客户收到这些消息时,它会在文件标题处加上星号。我的问题是,如何检测用户正在查看该页面,以便在用户看到新消息后立即删除星号?例如,Gmail和Facebook如何做到这一点?我听说不能在body
对象上放置onfocus
属性。使用JavaScript检测用户活动
我也想知道为什么身体没有聚焦的属性。
为什么不侦听window
的focus
和blur
事件?
window.addEventListener('focus', onFocus); // window has focus
window.addEventListener('blur', onBlur); // window lost focus
经过测试,适用于firefox 26,chromium和konqueror! :) – fonini
您可以检查document.hidden
,或使用document.visibilityState
for more options。
'document.hidden'或'document.visibilityState'。 [support](http://caniuse.com/#feat=pagevisibility) – Ryan