Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用_gaq未定义”;IE7和IE8中的谷歌分析错误_Javascript_Google Analytics_Google Analytics Api - Fatal编程技术网

Javascript &引用_gaq未定义”;IE7和IE8中的谷歌分析错误

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

我发现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>

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在
之前添加了脚本