如何使用Javascript

时间:2017-10-20 15:02:04

标签: javascript php html 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);
}

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

<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,我将不胜感激。

非常感谢您的支持。

1 个答案:

答案 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>