动态谷歌跨域javascript坏了

时间:2012-03-30 14:05:30

标签: javascript jquery google-analytics cross-domain

我正在关注这篇文章:

http://www.lunametrics.com/blog/2011/12/01/automatic-cross-domain-tracking-revisited/

这导致我将以下内容放入我的网站:

https://github.com/oldbie/xdomain/blob/master/xdomain.js

我已移除jQuery.noConflict();并转而使用$代替。

当我在我的网站上运行代码时,我会遇到$(link).attr("href") is undefined

if($(link).attr("href").indexOf(this)!=-1){

但如果您查看上面链接中的代码,则会在我们执行时定义:

var link = $(this); var href = link.attr('href');

是否正确定义?如果是这样,你能看到错误吗?

您可以在此处查看复制的问题:

http://jsfiddle.net/uZFcU/1/

这个html会导致问题:

<a id="manage"><span id="ocPM" class="arrowDo"></span></a>

1 个答案:

答案 0 :(得分:2)

  

是否正确定义?

  

如果是这样,你能看到错误的东西吗?

没有

由于你没有显示所有代码,我在一个小提琴中运行了git代码。我删除了noConflict();,但这不是必需的。我还注释了对GA函数的调用,因为它们没有在小提琴中定义。添加了警报以显示代码触发的位置。

查看代码中的其他错误或在此处发布所有错误,因为git代码运行良好:

http://jsfiddle.net/uZFcU/

通过评论

添加新信息后,

更新

请在下面的评论中提及:http://jsfiddle.net/uZFcU/1/

HTML行<a id="manage"><span id="ocPM" class="arrowDo"></span></a>没有href属性。所以它是undefined

git脚本listenToClicks函数正在$(document).ready函数中加载时扫描页面。当你有这样的锚点或链接时,你需要修改listenToClicks以忽略它们。

改变这个:

$("a").each(function(index) {

到此:

$("a[href]").each(function(index) {

更新了小提琴:http://jsfiddle.net/uZFcU/8/