与OnClick事件链接任何原因它不会触发/工作?

时间:2012-01-10 10:13:17

标签: javascript html google-analytics

我有以下链接来跟踪谷歌分析的跨站点旅行:

<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。

6 个答案:

答案 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,这导致打开两个窗口。

相关问题