从jQuery文档加载Google分析准备好了吗?

从jQuery文档加载Google分析准备好了吗?,jquery,google-analytics,Jquery,Google Analytics,问题是GA有时需要一点时间来加载,我的jQuery ready()函数在加载完成之前不会运行。我想将GA代码本身移动到ready()函数的末尾。我不是在寻找额外的点击跟踪集成——我只是希望我的ready()脚本首先运行 我的问题是: 1) 移动GA代码会以任何方式破坏他们的状态跟踪吗?以及, 2) 我是否需要模拟他们使用两个脚本标记(一个生成外部脚本标记,另一个调用函数)?如果是,为什么,在jQuery函数中实现这一点的最佳方法是什么 为了解释#2,以下是当前在结束body标记之前的GA代码:

问题是GA有时需要一点时间来加载,我的jQuery ready()函数在加载完成之前不会运行。我想将GA代码本身移动到ready()函数的末尾。我不是在寻找额外的点击跟踪集成——我只是希望我的ready()脚本首先运行

我的问题是: 1) 移动GA代码会以任何方式破坏他们的状态跟踪吗?以及, 2) 我是否需要模拟他们使用两个脚本标记(一个生成外部脚本标记,另一个调用函数)?如果是,为什么,在jQuery函数中实现这一点的最佳方法是什么

为了解释#2,以下是当前在结束body标记之前的GA代码:

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-8704511-1");
pageTracker._trackPageview();
} catch(err) {}</script>

var gaJsHost=((“https:==document.location.protocol)?”https://ssl." : "http://www.");
write(unescape(“%3Cscript src=”+gaJsHost+“google analytics.com/ga.js”type='text/javascript'%3E%3C/script%3E”);
试一试{
var pageTracker=_gat._getTracker(“UA-8704511-1”);
页面跟踪器。_trackPageview();
}捕获(错误){}

之所以有两个脚本块,是因为第一个块中的脚本在两个块之间插入了对Google Analytics javascript文件的引用。如果它都在同一个块中,那么跟踪器将在加载之前尝试初始化。因此#2绝对正确,您需要拥有或模拟两个脚本标记。

这里有一个类似的问题:

这里的公认答案是:


谷歌似乎也解决了这个问题-请看这篇最近的文章

链接到一个非常旧的页面,有更好的解决方案(请看其他答案)。