0

我使用了旧的 Google Analytics 代码,并有一堆链接,它们附加了 pageTracker 功能,以便它们也计算每次点击。现在我升级到最新的 GA,pageTracker 不再工作,这没关系,但是链接在 IE 中显示 JS 错误,因为 pageTracker 未定义。我不想浏览所有链接并删除所有 pageTracker onclicks,但只想找到一种方法来取消这些链接,这样它们就不会导致错误。

我试过 var pageTracker = ""; 和 var pageTracker = null; 但仍然得到一个未定义的错误。这就是链接的样子。

<p><a href="/gotowebsite/" onclick="javascript: pageTracker._trackPageview('/GoToTheWebsiteLink');">Go to the website</a><br />

这是在 JSFiddle 中。当您在 IE 中单击链接时,您会在短时间内看到 JS 错误,直到加载下一页。 http://jsfiddle.net/Fvp9F/

4

3 回答 3

0

尝试添加一个pageTracker像这样的假对象(当然最好只在之前没有定义的情况下这样做)

if (!pageTracker) { /* if pageTracker is not defined */
    var pageTracker = {
        "_trackPageview" : function() {

        }            
    }
}

小提琴示例:http: //jsfiddle.net/Fvp9F/6/

于 2012-05-24T15:30:42.407 回答
0

你真的很接近,只需要把它变成一个空白对象:

var pageTracker = {_trackPageview: function(){}};
于 2012-05-24T15:31:04.270 回答
0

甚至比添加一个假的/空白的 pageTracker 对象更好,您应该能够从 _gat 全局获取 pageTracker,并且仍然可以使用旧的跟踪代码。

pageTracker = _gat._getTrackerByName();

一个问题是您需要确保在加载异步跟踪代码后获取跟踪器。_gaq.push()还允许函数对象——将以下内容添加到您的异步跟踪代码中应该可以工作:

_gaq.push(function() { pageTracker = _gat._getTracker(); });
于 2012-05-24T18:36:49.247 回答