Javascript 忽略onclick以防止JS错误

Javascript 忽略onclick以防止JS错误,javascript,null,google-analytics,Javascript,Null,Google Analytics,我使用了旧的谷歌分析代码,有一堆链接,链接上附带了页面跟踪器功能,这样他们也可以计算每次点击的次数。现在我升级到了最新的GA,pageTracker不再工作了,这没关系,但是IE中的链接显示了一个JS错误,因为pageTracker没有定义。我不想浏览所有链接并删除所有pageTracker onClick,但我只想找到一种方法来取消这些链接,这样它们就不会导致错误 我试过var pageTracker=“”;和var pageTracker=null;但是仍然会得到一个未定义的错误。这就是链接

我使用了旧的谷歌分析代码,有一堆链接,链接上附带了页面跟踪器功能,这样他们也可以计算每次点击的次数。现在我升级到了最新的GA,pageTracker不再工作了,这没关系,但是IE中的链接显示了一个JS错误,因为pageTracker没有定义。我不想浏览所有链接并删除所有pageTracker onClick,但我只想找到一种方法来取消这些链接,这样它们就不会导致错误

我试过var pageTracker=“”;和var pageTracker=null;但是仍然会得到一个未定义的错误。这就是链接的外观

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

这里是JSFIDLE。当你点击IE中的链接时,你会在很短的时间内看到JS错误,直到下一个页面加载。

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


小提琴示例:

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

var pageTracker = {_trackPageview: function(){}};

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

pageTracker = _gat._getTrackerByName();
一个问题是,您需要确保在异步跟踪代码加载后获取跟踪器
\u gaq.push()
还允许函数对象——将以下内容添加到异步跟踪代码中应该会起作用:

_gaq.push(function() { pageTracker = _gat._getTracker(); });

凉的由于某些原因,我仍然得到JS未定义错误。我在这个问题上也有错误。我正在运行IE8。嗯,我想知道是什么给了我一个有趣的想法。但我使用的是一种全局方式,它会自动将onclick附加到每个链接,所以我不需要这个。很高兴知道!错误是因为您为javascript指定了onLoad,所以它被包装在一个函数中,这使得
pageTracker
成为函数的本地。要么摆脱将迫使页面跟踪器成为全局的
var
,要么改为
no wrap(head)
Ahh gotcha。既然你这么说了,那就有道理了。再次感谢!
_gaq.push(function() { pageTracker = _gat._getTracker(); });