"_gaq未定义"IE7和IE8中的Google Analytics错误

Dha*_*gam 3 javascript google-analytics google-analytics-api

我在IE7和IE8中发现_gaq是未定义的错误

我的剧本吼叫

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-XXXXX']);
    _gaq.push(['_setDomainName', 'yyy.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);
    })();
</script>
Run Code Online (Sandbox Code Playgroud)

我可以为_gaq指定默认值吗? 请参阅此链接

Tom*_*son 7

根据您对我的评论的回复,这个问题的答案是

谷歌Analytics(分析)移动到几年前处理事件,让浏览器加载一个完整的页面,而无需等待来自GA服务器的响应一个新的,更现代的方式.而在过去,你导把<script>由谷歌靠近页面(刚结束标记之前)的端部设置片断,现在则应该包括标签某处<head>你的HTML的部分.

新脚本的工作原理是将javascript变量定义_gaq为数组,将其视为队列.您要跟踪的网页浏览量,事件和其他内容会被推送到阵列上,这实际上是即时的.有时间时,GA代码将检查数组中的内容并将其弹出,将请求处理到GA服务器,直到数组为空.

_gaq变量的副作用是脚本标记在引用之前必须位于HTML中,否则您将收到JS错误_gaq is undefined.

例如,如Google Analytics事件跟踪指南中所述,您可能想知道用户何时在您的网站上播放视频,如下所示:

<a href="#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Baby\'s First Birthday']);">Play</a>
Run Code Online (Sandbox Code Playgroud)

注意_gaq这里对变量的引用.如果尚未定义,您将收到错误.

简短回答:将异步javascript片段放入<head>HTML中.