【问题标题】:XMLHttpRequest tracking issue (only for Firefox and Safari)XMLHttpRequest 跟踪问题(仅适用于 Firefox 和 Safari)
【发布时间】:2016-07-05 11:05:06
【问题描述】:

我正在使用一个系统来跟踪用户活动。它在 Google Chrome 上就像一个魅力,但它在 Firefox 和 Safari 上不起作用(我猜是由 window.close 引起的),因为没有在我的数据库中写入 'end_start' 并且页面结果仍然打开:

jsHandler.js

function start(pageName) {
    var xmlhttp3;
    if (window.XMLHttpRequest) {
        xmlhttp3 = new XMLHttpRequest();
    } else {
        xmlhttp3 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp3.onreadystatechange=function() {
    if (xmlhttp3.readyState==4 && xmlhttp3.status==200) {

    }
}

xmlhttp3.open("GET","includes/trackStart.php?pageName="+pageName,true);
    xmlhttp3.send();
}


function end() {
    var xmlhttp3;
    if (window.XMLHttpRequest) {
        xmlhttp3 = new XMLHttpRequest();
    } else {
        xmlhttp3 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp3.onreadystatechange=function() {
    if (xmlhttp3.readyState==4 && xmlhttp3.status==200) {

    }
}

xmlhttp3.open("GET","includes/trackEnd.php",true);
    xmlhttp3.send();
}

HTML

<script src="../includes/jsHandler.js"></script>
<script>
    window.onload = function(){ return start('<?php echo basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['PATH_INFO']); ?>');};
    window.onbeforeunload = function(){ return end(); };
    window.onclose = function(){ return end(); };
</script>

谢谢!

【问题讨论】:

    标签: javascript php xmlhttprequest tracking issue-tracking


    【解决方案1】:

    解决了!我正在使用 JQuery:

    $(window).on('beforeunload', function(){
            return end();
          });
          $(window).on('unload', function(){
            return end();
          });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      相关资源
      最近更新 更多