我正在使用 require.js (http://requirejs.org/ http://requirejs.org/)对于我网站上的许多功能,到目前为止它似乎运行良好。不过,我在尝试包含 Google Analytics 代码时遇到了问题。该代码似乎拒绝添加 utm.gif 并且没有向 Google 发送信标。我想知道这是否是一个范围问题。
define(function() {
var Analytics = {};
Analytics.Apply = function() {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
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);
}
return Analytics;
});
ga.debug 不会引发任何错误,并且 utm.gif 不会出现。如果我将代码移到 require.js 之外(我的意思是使用 require.js 的模块化 javascript,因此只需将其内联添加到页面中),utm.gif 就会成功添加到页面,并且 ga.debug 会发送其信标。
我发现这个网站似乎成功使用了它,但我不确定该网站做了什么不同的事情:http://paceyourself.net/2011/05/14/managing-client-side-javascript-with-requirejs/ http://paceyourself.net/2011/05/14/managing-client-side-javascript-with-requirejs/
还有其他人遇到过将 require.js 和 GA 结合使用的问题吗?
其他答案都不适合我,但在阅读完之后我设法找出了一些有用的东西谷歌分析文档 https://developers.google.com/analytics/devguides/collection/analyticsjs/.
在你的主要app.js
requirejs.config({
paths: {
ga: '//www.google-analytics.com/analytics'
}
});
requirejs(['analytics'], function () {
...
});
在它自己的文件中analytics.js
:
define(['ga'], function () {
window.ga('create', 'UA-XXXXXX-1');
window.ga('send', 'pageview');
});
这是可行的,因为 requirejs 保证在函数执行时,analytics.js
将完成加载。这意味着window.ga
函数已准备好接受命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)