使用时
var _gaq = _gaq || [];
在脚本标记内,在闭包中支持此操作以添加分析异步请求。
即。
experiment = (function(){
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
var nobody_knows_this_var_is_here = "cant see me";
});
如果尚未定义_gaq,它将能够找到此数组,以便在准备就绪后执行推送到它的项目。因为_gaq var不公开我猜它不会起作用。任何解决方法?
答案 0 :(得分:5)
您可以执行以下操作:
(function (window) {
var g = window._gaq || (window._gaq = []);
g.push(['_setAccount', 'UA-XXXXX-X']);
g.push(['_trackPageview']);
})(this);
如果在全局范围内执行,这就可以解决问题。
答案 1 :(得分:1)
这是有效的(使用jQuery的document.ready表示法):
$( function() {
$('.foobar').on('click', function() {
var _gaq = window._gaq || (window._gaq = []);
_gaq.push(['_trackEvent', 'category', 'action', 'label']);
});
});
答案 2 :(得分:0)
我不知道这是否会帮助其他人寻找答案,但也许会。 我有一个问题,没有定义_gaq。我意识到我的GA片段接近结束体标记之前的页面末尾。正如Google现在建议的那样,我在身体标签开始后将其移动到了正确的位置。我仍然有一个未定义的_gaq的问题。放
var _gaq = window._gaq || (window._gaq = []);
在我的代码顶部有自定义事件有助于解决我的所有问题,但前提是Google代码段位于页面顶部。这对我帮助很大,除了jQuery就绪函数之外,我没有把它放在每个click事件或任何地方的函数中。