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,我将不胜感激。
非常感谢您的支持。
为简洁起见,本示例使用 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)