Javascript 异步Google Analytics未登录IE

Javascript 异步Google Analytics未登录IE,javascript,internet-explorer,google-analytics,Javascript,Internet Explorer,Google Analytics,我手头的代码是跟踪来自Chrome、Safari、Firefox、Opera Mini的访问,但不是IE。我认为问题在于加载顺序、范围,或者可能是代码放置。我目前正在使用以下工具: 在我的example.html中: <script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script> <script type="text/javascript" src="examp

我手头的代码是跟踪来自Chrome、Safari、Firefox、Opera Mini的访问,但不是IE。我认为问题在于加载顺序、范围,或者可能是代码放置。我目前正在使用以下工具:

在我的
example.html
中:

<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
<script type="text/javascript" src="example.js"></script>
其中UA编号已更改以保护无辜:)

第一个选项:
-从
html
文件中删除
ga.js
-将脚本注入代码添加到
\u gaq.push
调用下面的
example.js
文件中:

(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);
})();

有没有人成功地将跟踪代码放入javascript文件中?或者我必须使用谷歌的
html
文件移动所有跟踪代码。

我们也遇到过类似的问题,我们的问题是,我们有一个两个字母的域。一旦你设置了“gaq.push”([''setDomainName',xx.com']);这一切都解决了,工作正常。

无论您是使用简单脚本标记调用ga.js,还是使用函数表达式调用ga.js,都没有多大区别,至少与所描述的问题无关。但是,建议在加载ga.js时不要阻止页面的其余部分加载

为什么IE(特别是IE 7和IE 8)不记录您的访问,正如您所怀疑的,与执行顺序有关

此函数名为push,以便在分析完全加载之前,可以使用数组代替_gaq。加载分析时,命令将被推送到/排队到阵列上。当Analytics完成加载时,它将用_gaq对象替换数组,并执行所有排队的命令。对_gaq.push的后续调用解析此函数,该函数在命令被推送时执行命令

因此,根据文档,无论是先填充数组,然后加载并执行ga.js,还是先加载并执行ga.js,然后触发跟踪方法,都不重要

事实上,在所有现代浏览器中,这并不重要。但是IE 7/8的表现不同。如果
push
方法已被替换,则调用它来执行跟踪方法,例如
trackPageview
,在IE 7/8中不起任何作用

所以要回答你的问题:

首先填充数组(或加载
example.js
),然后加载
ga.js
,最好使用函数表达式

这项工作:

<script type="text/javascript" src="example.js"></script>
<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>

正如这一点:

<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-########-1']);
_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>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-########-1']);
_gaq.push(['_trackPageview']);
</script>

<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>

var _gaq=_gaq | |[];
_gaq.push([“设置帐户”、“UA-”1“);
_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);
})();
正如这一点:

<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-########-1']);
_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>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-########-1']);
_gaq.push(['_trackPageview']);
</script>

<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>

var _gaq=_gaq | |[];
_gaq.push([“设置帐户”、“UA-”1“);
_gaq.push([''u trackPageview']);
或者这个:

<script type="text/javascript" src="example.js"></script>

<script>
(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 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);
})();

我们的域名超过2个字符,所以我认为这不能解决我的问题。谢谢