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



我在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>

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

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

几年前,谷歌分析转向了一种新的、更现代的事件处理方式,允许浏览器加载完整的页面,而无需等待GA服务器的响应。在过去,您被引导将谷歌提供的<script>片段放在页面末尾附近(就在结束正文标记之前),而现在您应该在HTML的<head>部分的某个地方包含该标记。

新脚本通过将javascript变量_gaq定义为数组来工作,该数组被视为队列。要跟踪的页面视图、事件和其他内容被推送到数组中,这实际上是即时的。有时间时,GA代码将检查数组中的内容并将其弹出,处理对GA服务器的请求,直到数组为空。

_gaq变量的一个副作用是,脚本标记在被引用之前必须在HTML中,否则您将得到JS错误_gaq is undefined

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

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

请注意此处对变量_gaq的引用。如果尚未定义,则会出现错误。

简言之:将异步javascript片段放在HTML的<head>中。

最新更新