我有以下链接来跟踪谷歌分析的跨站点旅行:
<a href="http://example.com/test.html"
onclick="_gaq.push(['_link', 'http://example.com/test.html']);
return false;"
class="noFloat"
target="_blank">
Click Me
</a>
我正在尝试调试此链接的原因,但它不起作用,我点击它并没有打开新窗口。只是想确认这是上面代码的问题,还是会在我的页面上出现其他问题?如果是这样,我将回到调试javascript。
答案 0 :(得分:3)
return false;
阻止了链接行为。要让链接像往常一样完成,只需删除它:
<a href="http://example.com/test.html"
onclick="_gaq.push(['_link', 'http://example.com/test.html']);"
class="noFloat"
target="_blank">
Click Me
</a>
答案 1 :(得分:2)
如果链接在新窗口中打开(target="_blank"
),传递您正在使用的cookie信息的内联方式将无效,return-false基本上会覆盖该标记的功能。 / p>
您必须更改href=""
- 标记的<a>
:
<a href="http://example.com/test.html"
id="ext-link"
class="noFloat"
target="_blank">
Click Me
</a>
然后有以下javascript:
_gaq.push(function() {
var pt = _gat._getTrackerByName(),
link = document.getElementById('ext-link');
link.href = pt._getLinkerUrl(link.href);
});
答案 2 :(得分:0)
怎么样:
<a href="#" onclick="Clicked();" class="noFloat" target="_blank">
Click Me
</a>
function Clicked()
{
_gaq.push(['_link', 'http://example.com/test.html']);
window.location = "http://example.com/test.html";
return false;
}
答案 3 :(得分:0)
如果您的脚本标记不在文档的 head 中,我发现默认的分析链接代码会中断。
答案 4 :(得分:0)
Rory McCrossan是正确的,“return false”将停止链接的默认行为,但对于这种情况,这是一个不完整的答案。推送到Google Analytics(GA)的“_link”方法会在完成处理后导致重定向。 GA需要时间来完成。有关详细信息,请参阅:http://bit.ly/1iasHQh
GA重定向失败的原因是另一个问题。两个理论:(1)我之前曾经历过这种情况并意识到这是因为我使用的是Chrome并安装了“Google Analytics停用插件”。 (2)“_ link”方法可能与使用target =“_ blank”不兼容。如果使用target打开新窗口/选项卡,则可以安全地删除“return false;”因为处理Javascript的当前页面不会被关闭,这仍然允许GA做它的事情。
希望能帮助他人。
答案 5 :(得分:0)
在完成答案后,其中没有一个完全奏效。就我而言,我的链接结构如下:
<a href="http://www.google.com/" target="_blank" onclick="trackOutboundLink('http://www.google.com'); return false;" >
Outbound Link</a>
在页脚中破解JS
var trackOutboundLink = function(url) {
ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
function () {
document.location = url;
}
});
}
在页脚中修复了JS:
var trackOutboundLink = function(url) {
ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
function () {
window.open(url, '_blank');
}
});
}
最初JS没有指定目标,因此它在同一窗口中打开。删除“return false”允许触发a href和onclick,这导致打开两个窗口。