我有一堆鏈接使用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