L'utilisation de Google Analytics code asynchrone de fichier JS externe

J'essaie d'ajouter de la version asynchrone du code de suivi Google Analytics pour un site web.

J'aimerais garder le JavaScript dans un fichier séparé, et de l'appeler à partir de là.

Voici ce que j'ai actuellement suis dans mon .fichier js:

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function loadtracking() {
    var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
        _gaq.push(['_trackPageview']);

        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();
}

addLoadEvent(loadtracking);

Et voici ce que j'ai dans le <head> étiquette de mon Master page:

<script type="text/javascript" src="js/google-analytics.js" ></script>

Cependant, il y a évidemment un problème car après quelques jours, je ne reçois pas les stats à travers!

Toutes les idées que j'ai besoin de changer?

Grâce,
Neil


EDIT: Ok... Après certains commentaires ci-dessous, je vais ajouter la nouveau contenu actuel de mon .fichier js. Je vais le garder à jour, de sorte que si/quand cela se résolu, il sera, nous l'espérons aider d'autres personnes qui essaient de faire des choses similaires.

var _gaq = _gaq || [];

function loadtracking() {
        window._gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
        window._gaq.push(['_trackPageview']);

        (function() {
            var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
        })();
}

loadtracking();
  • Est-ce possible pour résoudre votre problème? Je suis en cours d'exécution dans la même question, bien que j'ai eu mon var _gaq défini à l'échelle mondiale dans le .fichier js. Merci.
  • Aussi loin que je me souvienne, oui il l'a fait. Pour être honnête, pour la plupart des applications, je vous suggère de suivre les conseils ci-dessous et de mettre le code directement dans le document... C'est une exigence pour ce projet spécifique qu'il était dans un fichier séparé, qui peut ou peut ne pas être le cas avec vous.
  • J'ai lu beaucoup de semblables discussions sur et avoir vu des gens dire il n'y a pas de problème avec elle d'autre qu'une possibilité d'un léger retard dans le chargement du script, tandis que d'autres ont dit que cela va ruiner ma vie et de me condamner à l'enfer. J'en ai besoin pour passer dif valeurs en fonction de la page affichée, et que vous souhaitez conserver les modifications de code dans un seul fichier plutôt que sur chaque page du site. Il semble fonctionner très bien, mais si vous pouvez vous souvenir de tous les problèmes que vous avez couru dans, laissez-moi savoir. L'apprécier.
InformationsquelleAutor NeilD | 2010-07-16