我使用backbone.js创建了一个webapp,我正在尝试将google analytics集成到其中。事情是脚本执行总是停在ga.js内的某个点。执行停止的代码就像这样(美化版本)......
var o = e == "_gat" ? K : e == "_gaq" ? Tc : K.p(e);
o[f].apply(o, b[d][ha](1))
缩小版(第21行)
new ActiveXObject(d),e=c.GetVariable("$version")}catch(o){}e&&(e=e[w](" ")[1][w](","),e=e[0]+"."+e[1]+" r"+e[2])}b=e?e:"-"}Pc=b;
我正在记录这样的事件:
_gaq.push('_trackEvent', '[header] login', 'click');
我看到代码在Firebug脚本选项卡中的实时停止。如果我禁用调试,则不会生成Google Analytics分析请求。该应用程序工作正常。
这里可能出现什么问题?有没有人遇到过这样的问题。
更新
似乎问题与backbone.js无关。即使创建了这样最简单的页面也会产生同样的问题。我检查了Firebug中的Net选项卡 - __utm.gif
确实加载了。 ga.js
也成功加载。但是再次按下该按钮会使执行中断相同。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'XX-XXXXXX-XX']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<script type="text/javascript">
function check() {
alert("hi");
_gaq.push('_trackEvent', 'check');
}
</script>
</head>
<body>
<input type="button" value="abc" onclick="check();"/>
</body>
</html>
答案 0 :(得分:0)
你正在调用_trackEvent错误。请注意,_trackEvent的前2个参数是必需的,最后2个是可选的。它也应该在括号内。
检查功能的signature。
你应该打电话
_gaq.push(['_trackEvent', '[header] login', 'click']);
和
_gaq.push(['_trackEvent', 'check', 'something else']);