2009-05-12 6 views
6

Das Problem ist, dass GA manchmal eine Weile dauert, um zu laden, und meine jQuery ready() Funktionen nicht ausgeführt werden, bis es fertig ist. Ich möchte den GA-Code selbst an das Ende der ready() -Funktion verschieben. Ich bin nicht auf der Suche nach zusätzlicher Klick-Tracking-Integration - ich möchte nur, dass meine ready() Skripts zuerst ausgeführt werden.Laden Sie Google Analytics aus dem jQuery-Dokument bereit?

Meine Fragen sind: 1) Wird die Bewegung des GA-Codes ihre Statistik in irgendeiner Weise brechen? Und, 2) Muss ich ihre Verwendung von zwei Skript-Tags (eines, das das externe Skript-Tag generiert, und eines, das die Funktion aufruft) emulieren? Wenn ja, warum und was ist der beste Weg, dies in einer jQuery-Funktion zu tun?

Um # 2, hier ist der GA-Code zu erklären, die derzeit kurz vor dem Schließkörper-Tag geht:

<script type="text/javascript"> 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 
<script type="text/javascript"> 
try { 
var pageTracker = _gat._getTracker("UA-8704511-1"); 
pageTracker._trackPageview(); 
} catch(err) {}</script> 

Antwort

1

Der Grund gibt es zwei ist Skriptblocks, da das Skript im ersten Block einen Verweis auf die Einsätze Google Analytics Javascript-Datei zwischen den beiden Blöcken. Wenn alles im selben Block wäre, würde der Tracker versuchen, initialisiert zu werden, bevor er geladen wurde. Also # 2 ist definitiv wahr, Sie müssten zwei Skript-Tags haben oder emulieren.

3

Es ist wie Google sieht hat dieses Problem in Angriff genommen als Gut - siehe diese neuere Stack Overflow question

Verwandte Themen