Javascript &引用_gaq未定义”;IE7和IE8中的谷歌分析错误
我发现IE7和IE8中的gaq未定义错误 我的剧本是贝娄Javascript &引用_gaq未定义”;IE7和IE8中的谷歌分析错误,javascript,google-analytics,google-analytics-api,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
<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>
var _gaq=_gaq | |[];
_gaq.push([''u setAccount',UA-XXXXX']);
_gaq.push([''u setDomainName',yyy.com']);
_gaq.push([''u trackPageview']);
(功能(){
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);
})();
我可以为_gaq指定默认值吗 根据您对我评论的回复,这个问题的答案是 几年前,Google Analytics采用了一种新的、更现代的方式来处理事件,允许浏览器加载完整的页面,而无需等待GA服务器的响应。而在过去,你被引导将谷歌提供的
代码片段放在页面末尾附近(就在结束正文标记之前),现在你应该把标记放在HTML的
部分的某个地方
新脚本的工作原理是将javascript变量\u gaq
定义为数组,该数组被视为队列。页面浏览量、事件和其他您想要跟踪的内容被推送到阵列上,这实际上是即时的。有时间时,GA代码将检查数组中的内容并将其弹出,处理对GA服务器的请求,直到数组为空
\u gaq
变量的一个副作用是,在引用脚本标记之前,它必须在HTML中,否则会出现JS错误\u gaq未定义
例如,您可能想知道用户何时在您的网站上播放视频,如下所示:
<a href="#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Baby\'s First Birthday']);">Play</a>
注意这里对变量\u gaq
的引用。如果尚未定义,则会出现错误
简短回答:将异步javascript片段放在HTML的
中。这是使用var _gaq=_gaq | |[]发生的事情(设置默认值);它要么接受当前的gaq,要么创建一个空数组。你的代码肯定有其他问题。你能再发一些吗?在哪一行你得到的gaq是未定义的?var _gaq=_gaq | |[];同意上面的评论,错误不是来自此代码,更可能来自引用它的其他代码。这个脚本是在HTML的
部分定义的吗?在较早版本的GA中,您可以将脚本放在关闭标记的前面。如果它还在那里,那很可能就是问题所在。只要在引用\u gaq
变量之前读取并处理了脚本标记,就不会出现此错误(即使是从IE7和IE8!!)。@tharrison:I在
之前添加了脚本