0
我试图捕获某些下载链接的点击并在Google Analytics中跟踪它们。这里是我的代码使用Google Analytics执行trackPageview时出现问题
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
linkpath = links[i].pathname;
if(linkpath.match(/\.(pdf|xls|ppt|doc|zip|txt)$/) || links[i].href.indexOf("mode=pdf") >=0){
//this matches our search
addClickTracker(links[i]);
}
}
function addClickTracker(obj){
if (obj.addEventListener) {
obj.addEventListener('click', track , true);
} else if (obj.attachEvent) {
obj.attachEvent("on" + 'click', track);
}
}
function track(e){
linkhref = (e.srcElement) ? e.srcElement.pathname : this.pathname;
pageTracker._trackPageview(linkhref);
}
一切直到pageTracker._trackPageview()调用的作品。在我的调试中,linkhref作为字符串被正确地传递。没有异常的人物,没有什么问题在于,通过观看我的http请求,Google从不会再跟踪gif(就像在“onclick”属性中调用此函数一样)。从我的JS控制台调用跟踪器也能按预期工作。这只在我的听众中。
难道我的听众在没有机会联系Google服务器之前没有推迟默认操作(加载新页面)?我见过其他跟踪脚本,它们没有任何推迟做类似的事情。
是的,我试过跟踪静态路径如你所说,这也不能工作。肯定确保GA在这个脚本之前加载,并且没有骰子。 – dmrnj 2009-08-12 14:08:50
我觉得自从这差不多一年之后,我就要将这个问题归咎于更新,而且我多次遇到这个问题。 我的_pageTracker对象正在使用_setDomainName(),但我在本地尝试此代码。当域冲突时,跟踪JS显然加载,但跟踪像素永远不会被调用。 – dmrnj 2010-07-21 13:12:04