Javascript 加载google analytics参数化异步页面跟踪脚本

Javascript 加载google analytics参数化异步页面跟踪脚本,javascript,google-analytics,Javascript,Google Analytics,如果我使用google analytics,在我页面的页眉部分的末尾,一切都按预期进行: <head> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_setDomainName', 'test.com']); _gaq.p

如果我使用google analytics,在我页面的页眉部分的末尾,一切都按预期进行:

<head>   
    <script type="text/javascript">

        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-XXXXX-X']);
        _gaq.push(['_setDomainName', 'test.com']);
        _gaq.push(['_trackPageview', '/title=ied&action=fire']);

        (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);
        })();

    </script>
</head>
Abowe代码已保存到GoogleAnalytics.js文件中。我将其加载到标题部分的页面,如下所示:

<head>
    <script src="/script/GoogleAnalytics.js" type="text/javascript" language="javascript"></script>
    <script type="text/javascript">googleAnalytics('test.com', '/title=ied&action=fire');</script>
</head>

googleAnalytics('test.com','/title=ied&action=fire');
但这次fiddler只显示一个请求:

图中也没有显示任何内容。 只下载了ga.js脚本,但没有其他为google analytics report填充数据的请求。这种方法有什么问题,如何解决

顺便说一句:我需要这2个参数和异步版本的跟踪脚本


问候

我已经让它工作了

GoogleAnalytics.js如下所示:

function googleAnalytics(domain, queryString) {        
    _gaq.push(['_setDomainName', domain]);
    _gaq.push(['_trackPageview', queryString]);
}
而标题部分如下所示:

<head>
    <script src="/script/GoogleAnalytics.js" type="text/javascript" language="javascript"></script>
    <script type="text/javascript">
        var _gaq = _gaq || [];
        _gaq.push(['_setAccount', 'UA-XXXXX-X']);

        (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);
        })();

    </script>
    <script type="text/javascript">googleAnalytics('com.dev.abb.com','');</script>
</head>

var _gaq=_gaq | |[];
_gaq推送(['''u setAccount','UA-XXXXX-X']);
(功能(){
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);
})();
googleAnalytics('com.dev.abb.com','');

关于您的问题是您的
\u gaq
声明在范围内是局部的
ga.js
加载并在全局范围内查找
\u gaq
。(一旦注入脚本,它就不再有权访问函数的作用域。)

要修复它,您可以放置
var _gaq=_gaq | |[]在函数外部,也可以在函数内部替换为:

window._gaq = window._gaq || []; 
这将解决您的问题

window._gaq = window._gaq || [];