我为我的javascript做了一个帮助,以便跟踪一些ajax事件,这里是它设置的简短版本
analytics:{
active: false,
gaq: null,
init: function(gaq){
this.active = true;
this.gaq = gaq;
$('a[href^=\"http://\"]').live('click', function() {
helper.analytics.trackPageview('/outgoing/' + $(this).attr('href'));
return true;
});
},
trackPageview: function(page){
if(this.active === false){
return;
}
this.gaq.push(['_trackPageview',page]);
}
},
我有常见的谷歌分析设置
<script type="text/javascript">
var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['_setDomainName', '.example.com']);
_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);
})();
$(document).ready( function() {
helper.analytics.init(_gaq);
});
</script>
但是在控制台中,日志记录_gaq
会导致出现一个对象。记录helper.analytics.gaq
会生成一个数组,其中会附加新的综合浏览量,但不会在Google Analytics中跟踪网页浏览。
为什么不通过引用将_gaq传递给助手?
答案 0 :(得分:1)
创建脚本代码时,ga代码段会将async
属性设置为true。因此,它将独立于身体负荷。您需要将事件处理程序绑定到ga脚本标记的onload事件。像这样:
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.onload = function(){
herlper.analytics.init(_gaq);
};
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);
})();
我没有对此进行测试,但我认为它可能有用。
答案 1 :(得分:0)
您是否在Chrome devtools控制台或Firefox&amp;萤火?
您在初始脚本标记后面有'."
。