我需要的东西,其中:有没有任何JavaScript库来捕获鼠标/键盘事件并将它们发送到外部服务器?
- 可以捕获所有的键盘事件
- 可以捕获所有鼠标事件(点击,移动)
- 能赶上滚动页面,可能需要大约浏览器的差异护理
- 发送数据到外部服务器使用JSONP(或其他任何东西,但不仅需要在最新的浏览器中工作)
- 是相当小,最多xx kB我希望
我想找到至少有3个以上正确实施的东西。 我也可以看看像Dojo或JQuery这样的js框架,如果他们能帮助我的话,那么我能够保持它足够小吗?
我需要的东西,其中:有没有任何JavaScript库来捕获鼠标/键盘事件并将它们发送到外部服务器?
我想找到至少有3个以上正确实施的东西。 我也可以看看像Dojo或JQuery这样的js框架,如果他们能帮助我的话,那么我能够保持它足够小吗?
如何自己写? :)让我们考虑这个简单的jQuery代码:
把这个在您的<头>
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('html').mousemove(function(event){
console.log("mouse move X:"+event.pageX+" Y:"+event.pageY);
});
$('html').click(function(event){
console.log("mouse click X:"+event.pageX+" Y:"+event.pageY);
});
$('html').keyup(function(event){
console.log("keyboard event: key pressed "+event.keyCode);
});
});
</script>
如果你会去到Firefox萤火虫或IE/Chrome开发者工具/ JavaScript控制台,你会看到所有价值。你将需要实现你需要的数据,以及一些机制,以每两秒钟(使用jQuery的岗位或AJAX方法和JSON对象)
汇总后所收集的数据进行简单的活动对象:
这不是防弹的,你需要的服务器部分(简单的php/asp.net mvc页面反序列化json并将其存储到你需要的db/xml whaterver中),并且你准备好了:)
根据下面有关批量处理数据的评论 - 非常好点。改变。鼠标移动事件:
$('html').mousemove(function(event){
console.log("mouse move X:"+event.pageX+" Y:"+event.pageY);
var color = 'red';
var size = '2px';
$("body").append(
$('<div></div>')
.css('position', 'absolute')
.css('top', event.pageY + 'px')
.css('left', event.pageX + 'px')
.css('width', size)
.css('height', size)
.css('background-color', color)
);
});
将使它更容易想象将有多少数据是 - 每个点会是一个POST到远程服务器
而不是'console.log',你可以很容易地使用'$ .get'把数据发送到远程服务器。尽管您可能希望对事件进行批处理,以便在有人抓取鼠标时不发送数百个请求。 –
发送聚合数据“onBeforeUnload”可能是有效的,也许每隔30秒发送一次。 –
这个问题听起来像一个XY Problem。我认为你真正想要的是一个系统,它可以让你在网页浏览器上记录用户事件并报告这些事件。通常,这种类型的功能不是作为部分产品存在,而是完整的解决方案。我知道的唯一解决方案是这种跟踪AND提供报告的类型是Adobe Omniture(来自个人经验)。在写这篇文章的时候,这个网站似乎很糟糕。
当您使用“** ALL **”这个词是指**和**之外的浏览器之外的键盘和鼠标事件吗? (原因这是不可能的Javascript) –
不,显然不是;)我的意思是浏览器选项卡内的所有事件(如果它是活动的)。 –
只是好奇,为什么你需要这么多的用户? – zzzzBov