2010-12-10 23 views
0

J'ai une fonction Toogle qui permet d'afficher/masquer un div bloack pour les utilisateurs finaux. Cependant, certains utilisateurs ont déclaré que l'IE générait une erreur lorsqu'ils cliquaient sur ce lien. Je me demande si je peux utiliser l'instruction try catch en JavaScript pour capturer l'erreur que les utilisateurs ont reçue et envoyée à Googel Analytics.Essayez d'erreur d'erreur en Javascript passer la déclaration d'erreur dans Google Analytics

Si oui, Comment je peux le faire. J'ai google analytcis mis en place dans notre site.

Par exemple, j'ai un numéro de téléphone dynamique d'appel de section div.

<div id = "cs_DynamicForm"> 
    "Phone number..." 
    <div> 

Lorsque les utilisateurs cliquent sur le lien Téléphone-nous, je peux le suivre dans google.

<a onclick="javascript: pageTracker._trackPageview('/Contact/UK/phone');" id="phoneNumberToggle" class="more-info-link" href=" javascript:void(0);">Phone us</a> 

En arrière, mes travaux fonction de bascule, comme celle

_dynamicPhoneNumber: function(type, arg) 
    { 
    var phoneNumber = document.getElementById("cs_DynamicForm"); 
    var vis =phoneNumber.style; 
    //alert(vis); 
    if(vis.display==''&&phoneNumber.offsetWidth!=undefined&&phoneNumber.offsetHeight!=undefined) 
     vis.display = (phoneNumber.offsetWidth!=0&&phoneNumber.offsetHeight!=0)?'block':'none'; 


    vis.display = (vis.display==''||vis.display=='block')?'none':'block'; 
    } 

Si je dois réécrire cette fonction, je pense qu'il regardera aime que:

try{ 
     var phoneNumber = document.getElementById("cs_DynamicForm"); 
     var vis =phoneNumber.style; 
     //alert(vis); 
     if(vis.display==''&&phoneNumber.offsetWidth!=undefined&&phoneNumber.offsetHeight!=undefined) 
     vis.display = (phoneNumber.offsetWidth!=0&&phoneNumber.offsetHeight!=0)?'block':'none'; 
     vis.display = (vis.display==''||vis.display=='block')?'none':'block'; 
     } 
     catch (e) 
     { 
     var errorMsg=e.message; 
     if (typeof (e.number) != "undefined") { 
     document.write ("<br />"); 
     document.write ("The error code: <b>" + e.number + "</b>"); 
     } 
     if (typeof (e.lineNumber) != "undefined") { 
     document.write ("<br />"); 
     document.write ("The error occurred at line: <b>" + e.lineNumber + "</b>"); 
     } 
     //And send the errorMsg to google analytics. how I should do that 
     } 

Tous aide,

Cheers, Qing

Répondre

0

première capture l'erreur comme simplement:

try { 
tes.ting = 123; 
} 
catch(e) { 
errors.push(e); 
} 

puis pousser Google

_gaq.push(['_trackEvent', 'Testing', 'Error', errors.toString()]); 
+0

Salut Ege, merci je mets cette ligne de code dans mes prises, permettez-moi de vérifier si je peux obtenir demain des données: \t _gaq. push (['_ PhoneNumberDisplayError', 'US testing', 'ErrorMessage', errors.toString()]); – QLiu

+0

vous ne devriez pas changer le _trackEvent; plus à trouver ici: http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html#SettingUpEventTracking –

0

Vous pouvez utiliser le trackEvent comme on l'a fait ici - mais je crois que la meilleure façon est d'utiliser trackPage , comme tu l'as fait pour les autres pages.

J'utilise quelque chose comme ceci:

try { 
    ... 

} catch (e) 
{ 
    pageTracker._trackPageview('/errors/'+e.toString()); 
} 

Vous pouvez remplacer « erreurs/» avec tout ce qui fait sens pour vous (« -liste virtuelle-erreurs/» par exemple).

En outre, envisager d'ajouter le suivi des erreurs à window.onerror gestionnaire:

window.onerror = function(errorMsg, url, lineNumber){ 
     pageTracker._trackPageview('/errors/'+errorMsg); 
    }