从浏览器中检测用户是AFK

时间:2013-06-11 16:14:20

标签: javascript html browser webbrowser-control

我正在编写内部业务应用程序,我需要跟踪用户在特定任务上花费的时间。用户正在填写表单,但他可以访问其他页面/文档以获取所需信息。 简单的方法是假设用户在没有与页面交互5分钟的情况下成为AFK。但是 - 它将有5分钟的不准确性,它将忽略短于5分钟的休息时间等。如果他们花30分钟阅读一些大型文件,它将彻底破坏。

更好的方法是以某种方式检测用户没有移动他的鼠标/不使用键盘 - 根本不是在这个特定的浏览器窗口中。 是否有可能以合理的方式实现?用户没有安装Flash或Java(可以使用闪存吗?)。 我需要支持IE8和Chrome。

1 个答案:

答案 0 :(得分:2)

一个简单的解决方案是在体内放置onclick和onkeydown

这样的东西
<body onclick='this.resetTime();' onkeydown='this.resetTime();'> code </body>

当然,如果你有其他功能需要在点击/键盘上执行操作,你可以在其中嵌入重置时间。

this.resetTime()也只是一个伪造的伪函数,你必须自己制作。