如何使用 Javascript 跟踪出站点击

Dom*_*red 1 html javascript php ajax redirect

我正在尝试使用此处提供的代码:Make a ping to a url without redirecting。OP 要求在不打开多个窗口的情况下 ping 一个 URL。我想这样做,但我想实际访问第二个网址,以便我可以在服务器分析中跟踪出站点击。

这是我试图使其工作的代码:

<a href="javascript:;" onclick="visitPageX()">link</a>

function visitPageX() {
  // send Ajax request to the track URL
  setTimeout(function() {
    location.href = 'http://{pageXURL}';
  }, 300);
}
Run Code Online (Sandbox Code Playgroud)

但是,我不明白应该将“跟踪网址”放在哪里。这是我的尝试:

<a href="javascript:;" onclick="visitPageX()"><a href="http://externalsite.com/">anchor text</a></a>

function visitPageX() {
  // send Ajax request to the track URL
  setTimeout(function() {
    location.href = 'http://externalsite.com/';
  }, 300);
}
Run Code Online (Sandbox Code Playgroud)

我被困在该放哪里

http://examplemysite.com/tracking.php?123
Run Code Online (Sandbox Code Playgroud)

这样我就可以计算出站点击次数。如果您能帮助我使此代码正常运行,或者提供更好的解决方案来跟踪出站点击而不使用 Google Analytics,我将不胜感激。

非常感谢您的支持。

Jam*_*mes 5

为简洁起见,本示例使用 jQuery。它也可以使用普通的 javascript 编写。

在这里,我获取了跟踪 url,并将其作为数据属性添加到锚标记,以便各种链接可以轻松地拥有不同的跟踪 url。我给了锚一个 trackme 类,这就是 javascript 知道将跟踪功能分配给该特定<a>标签的方式。

javascript 会阻止默认加载 href,直到 ajax 调用成功或失败,然后才会加载 href。

<html>
<head>
<script src='https://code.jquery.com/jquery-3.2.1.js'></script>
<script type='text/javascript'>
$(document).on("click", ".trackme", function (e) {
    e.preventDefault(); // stop browser from going to href right away
    var finalURL = this.href;
    $.ajax({
        url: $(this).data("tracking-url"),
        success: function () {
            location.href = finalURL;
        },
        error: function () {
            location.href = finalURL;
        }
    });
});
</script>
</head>
<body>
<a href="http://google.com" data-tracking-url="http://examplemysite.com/tracking.php?123" class="trackme">anchor text</a>
<a href="http://yahoo.com" data-tracking-url="http://examplemysite.com/tracking.php?124" class="trackme">anchor text</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)