2017-03-10 75 views
0

我一直在使用堆栈溢出多年,但我第一次张贴希望简单的jQuery解决方案,我想不出。谷歌分析跟踪点击,没有提供网址

我正在经营一个网站,并且想跟踪出站链接。我已阅读并实施了https://support.google.com/analytics/answer/1136920?hl=en。我使用wordpress,并且它非常烦人地调整每个链接,尤其是标题链接,所以我想添加一个javascript/jquery脚本来捕获所有链接上的点击事件以及链接链接。

谷歌分析说,使用下面的代码在每一个HTML链接标签:

<a href="http://www.example.com" onclick="trackOutboundLink('http://www.example.com'); return false;">Check out example.com</a>

,但我想只写由上的所有点击触发一个简单的jQuery功能我的网站上的任何链接,并填写trackOutboundLink("")与任何链接。有没有$this.href()或我可以在这种情况下使用的东西?

基本上,我只想对所有链接事件侦听器,并记录他们这样的:

$("a").click(function() {trackOutboundLink($this.a.href)});

对不起,我知道我的问题是生病措辞,我就是一个巨大的jQuery n00b,但不知道更好的方法来问它......而且,我确实希望记录每个链接,甚至是内部链接。我不在乎。我只想要一种超级简单的方式来记录链接。

在此先感谢您的帮助!

+0

我想你想要这个'$(this).attr('href')' – jonmrich

回答

0

首先你需要一个选择器来选择所有出站的URL。他们的特点之一是它们通常包含某种形式的协议。然后,您排除指向您的域的所有链接。最后,您使用一个简单的单击事件来防止导航的默认行为,而是执行将使用户通过回调导航的跟踪代码。

jQuery(function ($) { 
    var domain = "example.com"; 
    $('a[href*=http]:not([href*=\'' + domain + '\'])').on('click', function (e) { 
    var url = $(this).attr('href'); 
    e.preventDefault(); 
    ga('send', 'event', 'outbound', 'click', url, { 
     'transport': 'beacon', 
     'hitCallback': function(){document.location = url;} 
    }); 
    }); 
}); 
+0

这很完美!谢谢一堆! – AndyF