Ich habe einen Google Analytics-Tracking-Code (GATC) auf meiner Website, der Aufrufe der Methode _gaq.push
im Google-Code auslöst.
In dem Szenario, in dem GA nicht verfügbar ist oder _gaq
nicht geladen wurde, möchte ich sicherstellen, dass auf der Seite keine JavaScript-Fehler vorhanden sind. Wenn Sie überprüfen, ob _gaq
nicht mit 'undefined' identisch ist, reicht dies aus, um zu überprüfen, ob es verfügbar ist und ist dieser x-Browser? Ich habe mir die Google-Dokumentation angesehen, aber nichts dazu.
Ich weiß, ob das Objekt null
ist, aber ich bin mir nicht sicher, ob das nötig ist.
Im empfohlenen JavaScript-Code, den Sie von Analytics erhalten, enthält er die folgende Zeile:
%Vor%Das Array sollte also immer verfügbar sein, wenn Sie diese Zeile in Ihrem Code behalten. Wenn Sie den Analysecode später hinzufügen, fügen Sie einfach die obige Zeile vor Ihren Hauptscripts hinzu und es wird funktionieren.
Beachten Sie, dass dieses Snippet harmlos ist, auch wenn Sie _gaq
vorher definiert haben, da es es nur als neues Array definiert, wenn es zuvor nicht definiert ist.
Dies ist eine großartige Möglichkeit, asynchrone Skripte zu verwenden, das Array wird zuerst lokal definiert, und Sie können bei Bedarf Befehle an dieses Array senden. Wenn das Analysescript geladen wird, kann es diese Befehle verwenden, wenn es gewünscht wird. Es muss also nicht überprüft werden, ob das Array undefiniert oder ähnlich ist.
Sie müssen im Allgemeinen nicht prüfen, ob es definiert ist, weil das Google Analytics-Code-Snippet dies für Sie erledigt. Wenn Sie jedoch etwas wie Ereignisverfolgung in anderen Abschnitten Ihres Sties tun, wie die Frage zeigt, ist es manchmal gut zu überprüfen, ob das Skript geladen ist, da es asynchron ist.
Ich habe einen jQuery-Plugin-Wrapper für GA geschrieben und wollte den Code einchecken, ob GA tatsächlich installiert war oder nicht, bevor ich versuchte, irgendwelche Daten dorthin zu übertragen. Dies sollte den Fall abdecken, dass jemand versucht hat, das Plugin ohne GA zu benutzen oder bevor GA initialisiert wurde.
%Vor% Wie @David gesagt hat, solange Sie das var _gaq = _gaq || [];
-Snippet zuvor definiert haben, geht es Ihnen gut und Es ist nicht notwendig, zu überprüfen, ob _gaq
undefiniert ist.
Der Grund dafür, dass _gaq
als leeres Array definiert ist, wenn es zuvor nicht definiert war, ist die Methode push
. Dadurch kann Ihr Analysecode ausgeführt werden, bevor der GA-Code geladen wird, oder in einigen Fällen, wenn er nicht verfügbar ist.
Wenn GA geladen wird, wird _gaq
als Objekt mit einer push
-Methode neu definiert, und alle vorhandenen Inhalte des alten _gaq-Arrays werden ausgeführt.
Tags und Links javascript jquery google-analytics typeof web-analytics