Jquery mobile jQuery移动和谷歌分析
我已经看到很多帖子解释了如何将Google analytics与你的JQM站点集成,但它似乎不适合我。 我使用的是JQM版本1.2,有一个外部javascript文件,其中包含以下代码: var _gaq=_gaq | |[]; _gaq.push([''设置帐户','UA-12345678-9']) (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);}() $('[data role=page]')。live('pageshow',函数(事件,ui){ 试一试{ hash=location.hash; if(hash&&hash.length>1){ _gaq.push([''u trackPageview',hash.substr(1)]; }否则{ _gaq.push([''u trackPageview']); } }捕捉(错误){ } }); 你能找出这不起作用的原因吗?Jquery mobile jQuery移动和谷歌分析,jquery-mobile,google-analytics,Jquery Mobile,Google Analytics,我已经看到很多帖子解释了如何将Google analytics与你的JQM站点集成,但它似乎不适合我。 我使用的是JQM版本1.2,有一个外部javascript文件,其中包含以下代码: var _gaq=_gaq | |[]; _gaq.push([''设置帐户','UA-12345678-9']) (function(){var ga=document.createElement('script');ga.type= 'text/javascript';ga.async=true;ga.sr
我是否需要将代码内联加载到每个页面上,而不是将其加载到外部文件中?您必须触发“pageshow”事件的页面视图 见: 试试这个:
var _gaq = _gaq || [];
$(document).ready(function(e) {
(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);
})();
});
$('[data-role=page]').live('pageshow', function (event, ui) {
try {
_gaq.push(['_setAccount', 'YOUR_ANALYTICS_ID_GOES_HERE']);
if ($.mobile.activePage.attr("data-url")) {
_gaq.push(['_trackPageview', $.mobile.activePage.attr("data-url")]);
} else {
_gaq.push(['_trackPageview']);
}
} catch(err) {}
});
如果将上述代码放在外部文件中,请确保代码将在正确的时间运行(在JQM和页面加载之后)。。。最好将此代码附加到主html文件的末尾
var _gaq = _gaq || [];
$(document).ready(function(e) {
(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);
})();
});
$('[data-role=page]').live('pageshow', function (event, ui) {
try {
_gaq.push(['_setAccount', 'YOUR_ANALYTICS_ID_GOES_HERE']);
if ($.mobile.activePage.attr("data-url")) {
_gaq.push(['_trackPageview', $.mobile.activePage.attr("data-url")]);
} else {
_gaq.push(['_trackPageview']);
}
} catch(err) {}
});
警告:live方法重命名为on
可以是一个单独的文件注入到您的(php,jsp)页面中
和必须在关闭数据角色页的div之前注入它
您可以查看jquery移动最佳实践和更具体的
请参阅:谢谢,但我还是无法让它工作。我已经尝试在我的页面部分添加document ready部分,在结束标记之前添加pageshow部分,但仍然无法在analytics中看到任何内容。我已将_gaq.push行更改为_gaq.push(['''u trackPageview',$.mobile.activePage.attr(“数据url”)+'-mobile']);因此,我可以通过“-Mobile”扩展来识别分析中的页面。我刚刚检查了分析,有很多页面带有“-Mobile”后缀,因此看起来一切都正常……分析只需一天就可以显示出来!再次感谢Ude(对于jQuery Mobile 1.3),因为jQuery中不存在
live
。上的并不是live
的替代品。