我多年来一直在使用Stack Overflow,但是我第一次发布了一个我想不通的简单jQuery解决方案。
我正在运营一个网站,并希望跟踪出站链接。我已阅读并实施https://support.google.com/analytics/answer/1136920?hl=en。我正在使用wordpress,调整每个链接,特别是标题链接是非常烦人的,所以我想添加一个javascript / jquery脚本,捕获所有链接上的点击事件,以及链接链接到的链接。
Google Analytics要求在每个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 :(得分:0)
首先,您需要一个选择器来选择所有出站的网址。他们的一个特点是它们通常包含某种形式的协议。然后排除指向您的域的所有链接。最后,您使用简单的单击事件来阻止导航的默认行为,而是执行将使用户通过回调导航的跟踪代码。
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;}
});
});
});