我知道这很困难,可能是不可能的问题,但即使有任何解决方案,请说出来。
当客户端正在处理其他应用程序时,我们如何在Web应用程序中检测键和鼠标事件,并且可能是运行我们的应用程序的浏览器最小化。
因为我的应用程序是一种计时器,我必须通过键和鼠标事件计算客户端在该计算机上的空闲时间。如果客户在我们的应用程序或其他应用程序上工作,则无关紧要。重要的是他必须在我的计时器运行期间在那台机器上工作。
答案 0 :(得分:1)
我不知道如何在html / jquery中实现这一点,因为它需要浏览器处于焦点状态。 尝试使用node.js它可以做诸如桌面应用程序之类的东西。
答案 1 :(得分:1)
编辑:正如@HappyPatrick建议的那样,您可以在ATOM SHELL之类的内容中执行类似的操作。你不会创建一个窗口。
编辑II - 我理解:
1)包括间隔内容因为......
因为我的应用程序是一种计时器,我必须通过键和鼠标事件计算客户端在该计算机上的空闲时间。
请记住,如果您使用js编写桌面客户端,您仍然可以使用此代码。
2)包括Atom shell,因为...它使您能够在js中编写桌面应用程序
我们如何在Web应用程序中检测到键和鼠标事件 客户端正在处理其他应用程序,可能是其中的浏览器 我们的应用程序正在运行最小化。
如果跟踪浏览器外的用户行为,gui-less桌面应用可能是安全的选择
您可以随时使用浏览器插件 - 但仅限于浏览器内行为。将内容脚本注入到所关注的页面/选项卡中,将事件侦听器附加到将消息传递给后台脚本(例如,在chrome扩展中)以跟踪空闲状态的文档。每个浏览器的插件显然会有所不同,但jquery可能看起来像这样:
var idleDuration = 0;
$(document).ready(function () {
resetIdleTimer(60000, 9);
$(this).on('mousemove keypress click', function() {
idleDuration = 0;
//
// handle these events here (creepy keylogging, etc)
//
});
function resetIdleTimer(duration, maxCount) {
// Increment idle counter every 1min. react after 10
var idleInterval = setInterval(function() {
idleDuration++;
if (idleDuration > maxCount) { // 10 minute threshold reached
//
// respond to idle
//
window.location.reload();
}
}, duration); // check at inteval of your pref
}
});
答案 2 :(得分:0)
要检测用户的活动,您可以在javascript中使用onmousemove事件
当鼠标指针位于浏览器页面中的特定div上时执行。
如果您希望它在完整的页面正文内容上记录用户活动,您可以以这种方式使用它
<body onmousemove = "recordactivity(event)">
否则
如果您希望它记录页面的端到端,您可以将其附加到您的html标签本身中
<html onmousemove = "recordactivity(event)">
您可以使用clientX和clientY获取页面的坐标 并跟踪用户鼠标指针的位置。