考虑到很多因素,我想跟踪我网站上的访问者。我通过连续的Javascript监控进行跟踪,并通过AJAX调用实时将收集的数据发送到服务器。
我的问题是,在用户点击正常链接或JS处理的更改document.location的DOM元素后,我的脚本不会记录最后一次点击并发送到我的服务器。
我认为我应该更改每个DOM的元素onClick事件,首先让我的脚本执行他的操作(preventDefault),然后继续执行原始的onClick事件,但这个解决方案似乎不合适且有点冒险(如果创建了任何onClick事件,该怎么办?在我第一次改变所有事件之后,由于显而易见的原因,我不能连续扫描和修改。
最好的方法是什么?
答案 0 :(得分:1)
您可以使用window.onbeforeunload
:
function getTrack(e){
//do your stuff
}
window.onbeforeunload=getTrack;
答案 1 :(得分:0)
我认为,根据您尝试跟踪的数据,您应该尝试查看Google Analytics,然后自动跟踪。
答案 2 :(得分:0)
无法确保来自onbeforeunload或onunload的请求将进入服务器。现代浏览器取消请求。
如果您想确保任何传出域名调用都能进入您的日志,您基本上需要劫持所有点击并取消操作。您将发送Ajax调用,完成后,您将执行页面导航。
答案 3 :(得分:0)
可能是使用jquery的一种方式。
<a class=' location' href=' page.php'> click </a>
<script>
$(document).ready (function (e){
$(".location").click (function(){
e.preventDefaults();
var link = $(this).attr("href");
$.ajax({
type:"GET",
url:"update_visitoi_infoo.php",
data:{v_info:"value"},
success:function(resp) {
document.location.href=link;
}
});
});
});