我有一堆链接使用target =“_ blank”属性在新窗口中打开。我想附加Google Analytics目标跟踪以点击这些链接。为什么使用target =“_ blank”导致Javascript失败?
为此,我尝试在链接上附加一个onclick =“pageTracker._trackPageview('/ event/outgoing')”属性。
但我发现对于具有target =“_ blank”属性的链接,Javascript onclick事件会被跳过。所以目标没有记录。换句话说,该链接成功地记录了目标:
<a href="http://www.yahoo.com" onclick="pageTracker._trackPageview('/event/outgoing')">Click me</a>
但这并不:
<a href="http://www.yahoo.com" target="_blank" onclick="pageTracker._trackPageview('/event/outgoing')">Click me</a>
有谁知道为什么这可能发生?假设没有简单的解决方案,我假设我将不得不使用Javascript来解决问题。下面的代码成功地记录了一个目标(但不打开链接):
function attach_goal_tracking() {
var links = document.getElementsByClassName("buyTicketsLink");
for(var i=0; i<links.length; i++) {
links[i].onclick = record_goal;
}
}
function record_goal(e) {
e.stop();
pageTracker._trackPageview('/event/outgoing');
}
但是,当我加入到record_goal函数打开的链接...
function record_goal(e) {
e.stop();
pageTracker._trackPageview('/event/outgoing');
var newWindow = window.open(this.getAttribute('href'), '_blank');
newWindow.focus();
}
...然后未能追踪目标。
谁能告诉我为什么这可能是,我该怎么做才能解决这个问题?仅供参考我正在使用Javascript的原型。
http://www.google.com/support/forum/p/Google+Analytics/thread?tid = 51738bbcaf8db444&hl = en我能找到的最好的东西。 – barkmadley 2009-10-28 11:02:47
我知道你说过你在使用Prototype库,虽然'e.stop()'是对Prototype事件对象的有效方法调用,你绑定到'click'事件的方式完全绕过Prototype事件绑定模型(即,'Event.observe')在IE中。仅供参考。 – 2009-10-28 15:44:28
如何使用onmousedown而不是onclick? – mangokun 2009-10-28 16:09:41