我正在探索从我的网站过滤机器人流量的一些不同方法。不幸的是,由于许多这些更复杂的机器人都可以执行JavaScript,因此我从谷歌分析中排除机器人流量的许多旧技巧都不再适用。
我的一个想法是使用jQuery仅在文档上检测到鼠标移动时触发页面视图,如下所示:
var counter = 0;
if(counter === 0){
$(document).mousemove(function(event){
alert("Fire an event to GA here");
counter += 1;
}
);
}
这确实会在鼠标移动时触发警报,但不幸的是,即使警报已经触发一次,警报也会继续弹出。我的另一个问题是,我想在它被触发后禁用事件处理程序,因为mousemove对用户来说可能是资源密集型的。
这可能吗?除了mousemove之外还有更好的方法吗?
答案 0 :(得分:1)
您对计数器的使用已被破坏,但在触发后,无需将mousemove
事件处理程序附加到文档中。尝试使用one
绑定事件,以便它只执行一次:
$(document).one("mousemove", function(event){
alert("Fire an event to GA here");
});
答案 1 :(得分:1)
$(document).on('mousemove', function(){
alert("GA triggered");
$(document).off('mousemove');
});
答案 2 :(得分:0)
你很亲密。您只需将if()置于绑定之外即可将其反转。
同时查看jQuery的unbind()
。
var counter = 0;
$(document).mousemove(function(event){
if(counter === 0){
alert("Fire an event to GA here");
counter += 1;
$(document).unbind( "mousemove" );
}
});
答案 3 :(得分:0)
使用一个(jquery documentation)
所以这对你的代码看起来像这样:
$(document).one('mousemove',function(){
alert("Fire an event to GA here");
counter += 1;
});