我正在尝试使用此处提供的代码: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);
}
但是,我不明白我应该把我的“跟踪网址”放在哪里。这是我的尝试:
<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);
}
我被困在哪里放
http://examplemysite.com/tracking.php?123
这样我就可以计算出站点击次数。如果您可以帮助我使用此代码,或者提供更好的解决方案来跟踪出站点击而不使用Google Analytics,我将不胜感激。
非常感谢您的支持。
答案 0 :(得分:3)
此示例使用jQuery简洁。它也可以使用vanilla javascript编写。
此处我已将跟踪网址添加为锚标记的数据属性,以便各种链接可以轻松拥有不同的跟踪网址。我已经为锚定了一类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>