Javascript 异步Google Analytics未登录IE
我手头的代码是跟踪来自Chrome、Safari、Firefox、Opera Mini的访问,但不是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
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个字符,所以我认为这不能解决我的问题。谢谢