0

我正在尝试找到一种从 document.ready() 函数添加谷歌分析代码的方法。以下代码不起作用。

$(document).ready(function () {
             var _gaq = window._gaq || [];
                 _gaq.push(['e._setAccount', 'UA-XXXZZ-1']);
                 _gaq.push(['e._setDomainName', 'company.com']);
                 _gaq.push(['e._trackPageview']);
                 _gaq.push(['a._setAccount', 'UA-XXXYY-1']);
                 _gaq.push(['a._setDomainName', 'company.com']);
                 _gaq.push(['a._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);
                 })();      
}); 

解决方案是什么?我可以将创建 ga.js 文件链接的代码放在 head 标签内,但它会解决问题吗?

谢谢

4

3 回答 3

1

以下设置似乎工作正常:在页眉中添加此脚本,该脚本立即运行:

<script type="text/javascript">
  (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>

在准备好的文档中添加跟踪代码:

 $(document).ready(function () {
      var _gaq = window._gaq || [];
      _gaq.push(['e._setAccount', 'UA-XXXZZ-1']);
      _gaq.push(['e._setDomainName', 'company.com']);
      _gaq.push(['e._trackPageview']);
      _gaq.push(['a._setAccount', 'UA-XXXYY-1']);
      _gaq.push(['a._setDomainName', 'company.com']);
      _gaq.push(['a._trackPageview']); });
于 2013-07-19T11:50:11.730 回答
0

另一个问题为您解答,马萨迪走在了正确的轨道上:

文档ready功能意味着_gaq变量的范围太有限。当 ga.js 中的其余 Google 脚本运行时,它找不到该变量。通过将_gaq内容向上移动到全局范围(在任何其他函数之外或使用window.gaq),可以找到变量。

将其放入文档的唯一好处ready是确保在分析运行之前 DOM 是完整的。对我来说,这是因为在设置之前调用了脚本,<title>否则我会得到空白标题。

于 2014-11-08T23:13:18.213 回答
0

删除 $(document).ready(function(){

并准备好结束标记 => });

因为谷歌分析在辅助文档准备功能中不起作用

于 2013-07-19T09:16:43.960 回答