2013-03-05 48 views
1

有关的原因的简单问题为什么作品谷歌分析里面文档准备不工作?

<script type="text/javascript"> 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXX-Y']); 
    _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(){ 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXX-Y']); 
    _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> 

什么是块分析与文件运行的东西准备?

+0

任何理由,你为什么会在jQuery的“准备就绪”事件这样做? – xandercoded 2013-03-05 14:59:16

+0

@Xander对于cookie策略警告。没有包括实施。好? – 2013-03-05 15:00:05

回答

3

你需要把_gaq变量声明为全球范围

<script type="text/javascript"> 
var _gaq = _gaq || []; 
$(function(){ 
    _gaq.push(['_setAccount', 'UA-XXXXX-Y']); 
    _gaq.push(['_trackPageview']); 
    ... 

或使window._gaq财产与谷歌分析使用

<script type="text/javascript"> 
$(function(){ 
    window.gaq = window._gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXX-Y']); 
    _gaq.push(['_trackPageview']); 
    ... 
2

它可能与Google本身加载到DOM中的JavaScript代码有关。这可能设置为在文档加载(或其他一些readystate/load事件)时运行。由于在DOM准备好时脚本正在执行(jQuery.load),因为ready事件已经被触发,GA将不会执行。

如果这不是问题,那么它可能是一个范围问题。