1

我正在尝试通过谷歌分析跟踪出站链接,谷歌建议使用这个

<script type="text/javascript">
  function recordOutboundLink(link, category, action) {
    _gat._getTrackerByName()._trackEvent(category, action);
    setTimeout('document.location = "' + link.href + '"', 100);
  }
</script>

这很好,除了我的出站链接将在新选项卡中打开,我(自然)使用 a target="_blank"..

但是,该setTimeout方法将其取消,并在同一页面中打开链接..

我试过使用window.open(),但我担心它会被浏览器阻止..

那么,无论如何我可以执行这个js函数,并延迟点击一会儿吗?(谷歌建议的 100 毫秒)?

谢谢。


我已经在 SO 上查看过类似的其他 问题,但它们不涉及在新标签/窗口中打开。

4

3 回答 3

1

很简单,只需删除其中的 setTimeout() 部分。所以它所做的只是调用 _trackEvent 函数。

您的链接应该同时执行 javascript 函数并打开新窗口,如果您只是将它们保留为:

<a href="example.com" target="_blank" onclick="recordOutboundLink(foo, bar)">Click here</a>

<script type="text/javascript">
  function recordOutboundLink(category, action) {
    _gat._getTrackerByName()._trackEvent(category, action);
  }
</script>
于 2012-06-11T16:34:37.140 回答
1

可以在此处改进上面的答案是一个 Jquery 插件,它可以提供监听链接选择(基于您自己的标准)并为您提供回调它们的方法。

小提琴

因此,在 OP 的情况下,设置可能如下所示:

<a href="http://www.google.co.uk" target="_blank" data-category="Outbound">Google</a>

$(document).ready(function() {
    $('a').trackOutBound(null,function() {
        var category= $(this).data('category');
        _gat._getTrackerByName()._trackEvent(category, $(this).attr('href'));
    });
});
于 2012-06-12T10:29:49.317 回答
-1

在继续使用默认浏览器行为之前,我使用它来保持函数等待:

var wait_until = new Date().getTime() + 500;
while (new Date().getTime() < wait_until) {
    //Do nothing, wait
}
于 2016-09-02T19:55:01.090 回答