Jquery mobile jQuery移动和谷歌分析

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

我已经看到很多帖子解释了如何将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']); } }捕捉(错误){ } });

你能找出这不起作用的原因吗?
我是否需要将代码内联加载到每个页面上,而不是将其加载到外部文件中?

您必须触发“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
的替代品。