-1

考虑到许多因素,我想跟踪我网站上的访问者。我通过持续的 Javascript 监控进行跟踪,并通过 AJAX 调用将收集到的数据实时发送到服务器。

我的问题是,在用户单击普通链接或由 JS 处理的更改 document.location 的 DOM 元素后,我的脚本不会记录最后一次单击并发送到我的服务器。

我认为我应该更改每个 DOM 的元素 onClick 事件,以首先让我的脚本做他的事情(preventingDefault),然后继续执行原始的 onClick 事件,但是这个解决方案似乎不合适并且有点冒险(如果在我第一次创建任何 onClick 事件怎么办?更改了所有事件,由于明显的原因,我无法连续进行扫描和修改)。

最好的方法是什么?

4

4 回答 4

1

You can use window.onbeforeunload:

function getTrack(e){
    //do your stuff
}

window.onbeforeunload=getTrack;
于 2013-10-24T13:16:16.360 回答
0

无法确保来自 onbeforeunload 或 onunload 的请求会到达服务器。现代浏览器取消请求。

如果您想确保任何传出域调用都进入您的日志,您基本上需要劫持所有点击并取消操作。您将发送 Ajax 调用,并在完成后进行页面导航。

于 2013-10-24T13:22:07.873 回答
0

我认为根据您尝试跟踪的数据,您应该尝试查看 Google Analytics,它会自动跟踪它。

于 2013-10-24T13:17:55.687 回答
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;
            }
     });
   });
});
于 2013-10-24T13:34:40.753 回答