Javascript 加载google analytics参数化异步页面跟踪脚本
如果我使用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
<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 || [];