我正在尝试使用gaAddons Google Analytics jQuery plugin跟踪我网站上的下载内容,因此我想通过执行一些跟踪代码来跟踪已下载的任何.JPG,.PNG,.PDF等。
显然某些内容无法正常工作,因为我似乎无法触发_trackEvent
。
这是驻留在gaAddons插件中的JavaScript。
///////////////////
// _trackDownloads
jQuery(document).ready(function($) {
// helper function - allow regex as jQuery selector
$.expr[':'].regex = function(e, i, m) {
var mP = m[3].split(','),
l = /^(data|css):/,
a = {
method: mP[0].match(l) ? mP[0].split(':')[0] : 'attr',
property: mP.shift().replace(l, '')
},
r = new RegExp(mP.join('').replace(/^\s+|\s+$/g, ''), 'ig');
return r.test($(e)[a.method](a.property));
};
$('a:regex(href,"\\.(zip|mp\\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*)")$').live('click', function(e) {
_gaq.push(['_trackEvent', 'download', 'click', this.href.replace(/^.*\/\//, '')]);
});
});
我在页面上包含上面的代码,我的简单锚链接到下面的PDF文件。
<a href="http://www.ayrshireminis.com/downloads/Files/pdfs/turnberry.pdf" target="blank">DOWNLOAD</a>
JavaScript有问题还是有更简单的方法来检查jpg / png / pdf文件下载?我可以忽略zip / ppt / tiff文件,因为它们不在网站上。
答案 0 :(得分:1)
我已经玩了好几个小时并遇到了这个解决方案,希望这有助于某人:
jQuery(document).ready(function($) {
var filetypes = /\.(zip|exe|pdf|doc*|xls*|ppt*|mp3)$/i;
var baseHref = '';
if (jQuery('base').attr('href') != undefined)
baseHref = jQuery('base').attr('href');
jQuery('a').each(function() {
var href = jQuery(this).attr('href');
if (href && href.match(filetypes)) {
jQuery(this).click(function() {
var extension = (/[.]/.exec(href)) ? /[^.]+$/.exec(href) : undefined;
var filePath = href;
_gaq.push(['_trackEvent', 'Download', 'Click-' + extension, filePath]);
if (jQuery(this).attr('target') != undefined && jQuery(this).attr('target').toLowerCase() != '_blank') {
setTimeout(function() { location.href = baseHref + href; }, 200);
return false;
}
});
}
});
});