2013-04-03 82 views
1

嘿,我正在添加一個onclick事件來跟蹤對某些視頻的點擊,我們使用的第三方工具是webtrends。Jquery Analytics跟蹤onclick NS_BINDING_ABORTED

我添加了onclick事件,它工作正常。需要注意的是,鏈接中的網址會讓用戶瀏覽到不同的網址。

當我跟蹤httpfox中的onclick事件時,我看到錯誤NS_BINDING_ABORTED。

我的jQuery

$j(document).ready(function() { 
$j('a.wt_video').click(function (e) { 
    var title = ($j(this).attr("title")); 
    if (title.length != 0) { 
     handleDynamicVideoWebTrendsClick(title); 
    } 
}); 

});

任何想法,我可以添加以防止此錯誤?

+0

您使用的是webtrends標籤的v10版本嗎? – eSniff

回答

1

我發現我們必須做兩件事來避免「中止」錯誤。

1)使用的setTimeout 2)用鼠標按下 - 特別是對於Firefox,因爲它認爲點擊既是鼠標按下和mouseup

$("#someBtn").live("mousedown", function(){ 
    var mT7 = setTimeout("myFunction()", 50); // 1000 would be a second 
}); 

var myFunction = function(){ 
var wtArgs = ['WT.dcs_id', 'youridgoeshere', 'DCSext.myFirstVar', varArray[varArray.length-2], 'DCSext.mySecondVar', varArray[varArray.length-1], 'DCSext.myThirdVar', tempArr[0]]; 
    dcsMultiTrack.apply(this, wtArgs); 
} 

希望幫助

0

在代碼比你稍有不同,使用標準的Google Analytics發送數據的方式,我遇到了同樣的問題:當JavaScript嘗試發送數據時,Firefox擴展HttpFox顯示NS_BINDING_ABORTED。問題解決了,如下所示:

有問題的代碼

$(document).ready(function() { 
    $('a').click(
     function() { 
      ga('send', 'event', 'category', 'Clique', 'label'); 
     } 
    ); 
}); 

固定碼

$(document).ready(function() { 
    $('a').click(
     function (e) { 
      e.preventDefault(); // don't go to the next page yet 
      var nextPage = $(this).attr('href'); 
      ga('send', 'event', 'category', 'Clique', 'label'); 
      setTimeout(function() { window.location = nextPage; }, 200); // wait a while and then go to the next page 
     } 
    ); 
}); 

還有,你必須知道一個非常重要的事情:在我的具體情況,關鍵的延遲時間爲50毫秒(在代碼中,200只是一個建議),因爲我使用的是包含以下字符串的「ga」函數的更新版本:

'script','https://www.google-analytics.com/analytics.js' 

當我使用「GA」的一個過時的(或改性的)版本,其中載有以下字符串:

'script','//www.google-analytics.com/analytics.js' 

的延遲時間的臨界值爲大於250毫秒。這是因爲瀏覽器在第一次請求後有義務使用https協議重複使用它。因此,作爲解決方案的一部分,確保您使用的是最新版本的「ga」功能。