我正在使用伟大的异步脚本加载器yepnope.js (在Modernizr2中)。
我的问题是,将latset Google Analtics异步代码整合到yepnope (如果有的话)的最好方法是什么?
谷歌建议对实际的分析代码这样做:
<html>
<head>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
</script>
</head>
<body>
<p>Page Content</p>
<script src="some_random_script.js"></script>
<p>Page Content</p>
<script type="text/javascript"> (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>
</body>
</html>但在现代的文档中,他们提到了:
// Give Modernizr.load a string, an object, or an array of strings and objects
Modernizr.load([
// Presentational polyfills
{
// Logical list of things we would normally need
test : Modernizr.fontface && Modernizr.canvas && Modernizr.cssgradients,
// Modernizr.load loads css and javascript by default
nope : ['presentational-polyfill.js', 'presentational.css']
},
// Functional polyfills
{
// This just has to be truthy
test : Modernizr.websockets && window.JSON,
// socket-io.js and json2.js
nope : 'functional-polyfills.js',
// You can also give arrays of resources to load.
both : [ 'app.js', 'extra.js' ],
complete : function () {
// Run this after everything in this group has downloaded
// and executed, as well everything in all previous groups
myApp.init();
}
},
// Run your analytics after you've already kicked off all the rest
// of your app.
'post-analytics.js'
]);注意底线re:发布分析。我不想要一个新的js文件,因为那是另一个HTTP请求。
我是不是应该把这个放在yepnope外面?把它放在yepnope框架中有什么好处吗?
阿迪
发布于 2011-08-23 03:26:11
我在Ignited-HTML5-Boilerplate上找到了这个。
<script>
window._gaq = [['_setAccount','UAXXXXXXXX1'],['_trackPageview'],['_trackPageLoadTime']];
Modernizr.load({
load: ('https:' == location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js'
});
</script>发布于 2011-12-07 06:12:01
我不确定这是否是将最新的Google Analytics代码集成到yepnope中的“最佳方式”,但是将google代码集成到yepnope中的一种方法是:
<script type="text/javascript">
Modernizr.load([
{
// WEB ANALYTICS loaded by yepnope (beta)
test: Boolean(SITEID = ''), // TODO: Fill the site ID to activate analytics
complete: function() {
if (SITEID) {
var _gaq=[['_setAccount',SITEID],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
}
}
}
]);
</script>将此代码放在</body>标记之前的It should be OK。
https://stackoverflow.com/questions/6490578
复制相似问题