我正在使用以下代码来跟踪Google Analytics中的出站链接(在此网站上找到它)。我有两个问题:
是否可以修改此代码以执行以下操作(1)强制链接在新窗口中打开,以及(2)跟踪出站点击事件,如图所示。
$(function() {
$("a").on('click',function(e){
var url = $(this).attr("href");
if (e.currentTarget.host != window.location.host) {
_gat._getTrackerByName()._trackEvent("Outbound Links", e.currentTarget.host, url, 0);
if (e.metaKey || e.ctrlKey) {
var newtab = true;
}
if (!newtab) {
e.preventDefault();
setTimeout('document.location = "' + url + '"', 100);
}
}
});
});
答案 0 :(得分:0)
<a>
元素都会受到影响。这显然应该包含一些指向您自己网站的链接,除非您的网站没有菜单,我相信它显然没有。target="_blank"
属性。答案 1 :(得分:0)
e.currentTarget.host != window.location.host
- 如果您的域名具有www前缀(如www.domain.com
)但有一些没有它的链接(例如domain.com/link.html
}),它们被视为外部链接。以下代码应该可以工作,无论任何www或子域前缀如何:
jQuery(function($) {
$('a[href^="http://"],a[href^="https://"]')
.not('[href*="mydomain.com"]')
.click(function(e) {
var url = this.href;
_gat._getTrackerByName()._trackEvent("Outbound Links", e.currentTarget.host, url, 0);
e.preventDefault();
window.open(url);
})
});
$('a[href^="http://"],a[href^="https://"]')
- 选择以http://
或https://
开头的链接。这应包括所有出站链接。.not('[href*="mydomain.com"]')
- 抛出包含mydomain.com
的所有链接,以防万一有以http://
开头的内部链接... e.preventDefault();
- 阻止正常关注链接。此外,如果您使用当前的异步Google Analytics代码,则可以将_trackEvent调用缩短为
_gaq.push(['_trackEvent', 'Booking', "Outbound Links", e.currentTarget.host, url, 0]);