2010-07-04 5 views
0

Vous devrez me pardonner sur celui-ci. Je comprends que le problème est probablement très simple, mais je ne suis pas un codeur JS et je commence tout juste à me familiariser avec jQuery.Inattendu ReferenceError: pageTracker n'est pas défini

J'ai donc un appel jQuery Ajax $(document).ready:

$('#newesttab').click(function() { 

     $('li').removeClass('selectedtab'); 
     $('#newesttab').addClass('selectedtab'); 
     $('#col2').removeClass('featuredcol topratedcol').addClass('newestcol'); 

     $("#ajaxresults").fadeOut("slow", function() { 
      $.ajax({ 
       url: "<?php echo site_url('code/newest'); ?>", 
       success: function(msg) { 
        $('#ajaxresults').html(msg); 
        $("#ajaxresults").fadeIn("fast"); 
        <?php if ($_SERVER['HTTP_HOST'] != 'localhost:8888') { ?>pageTracker._trackPageview('/code/newest/ajax');<?php } ?> 
       } 
      }) 
     }); 
    }); 

Donc, fondamentalement, quand #newesttab est cliqué, il fait un peu de charabia avec quelques Clases & ID, fane trucs, puis charge certaines données à partir d'une fonction Ajax CodeIgniter. En cas de succès, la div #ajaxresults est rempli avec les données, apparaît en fondu - et enfin, vous verrez cette ligne:

<?php if ($_SERVER['HTTP_HOST'] != 'localhost:8888') { ?> 
    pageTracker._trackPageview('/code/newest/ajax'); 
<?php } ?> 

Tout ce qui est fait vérifier si je ne suis pas sur MAMP localhost afin de ne pas obtenir données géniales dans Google Analytics. Si ce n'est pas le cas, j'appelle le pageTracker thingy de Google Analytic pour suivre l'URL code/newest/ajax afin qu'il apparaisse dans mes analyses malgré la page appelée via Ajax. C'est exact, n'est-ce pas?

console de bien Chrome me montre cette erreur: Uncaught ReferenceError: pageTracker is not defined

La partie que je ne comprends pas, est parce que ce code est en (document).ready sûrement il doit tirer que lorsque le document entier est chargé? Et cela signifie, par conséquent, que l'extrait asynchrone de Google Analytics a été chargé avant mon tag </body> (oui, c'est définitivement là) ... Je suppose que je suis en train de mal comprendre quelque chose, non?

Et avant que quiconque demande, oui, je l'ai essayé ce pas sur localhost;)

Merci!

Jack

+0

Pensée: est-ce que 'pageTracker._trackPageView' n'est pas utilisé dans le nouveau code de suivi asynchrone? – Jack

+0

Votre code de suivi (la pièce qui appelle/charge ga.js) est-il ou ? – doug

+0

Acclame @doug, le code de suivi est dans '' - avant la balise de fermeture '', comme Google l'indique. Je pensais que le jQuery ne tirerait pas avant que ce soit chargé? – Jack

Répondre

0

Il s'avère que j'appelle pageTracker quand le code Async vous devez appeler gaq_push.

+0

pouvez-vous expliquer un peu plus? – Xeoncross

+0

@Xeoncross: http://stackoverflow.com/questions/3503511/google-analytics-pagetracker-is-not-defined/3503587#3503587 –