0

我看过很多解释如何将 Google 分析与您的 JQM 网站集成的帖子,但它似乎对我不起作用。我正在使用 JQM 1.2 版并且有一个包含以下代码的外部 javascript 文件:

变种 _gaq = _gaq || []; _gaq.push(['_setAccount', '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 (气体); })();

$('[data-role=page]').live('pageshow', function (event, ui) { try { hash = location.hash; if (hash && hash.length > 1) { _gaq.push([ '_trackPageview', hash.substr(1)]); } else { _gaq.push(['_trackPageview']); } } catch(err) { } });

你能看出为什么这不起作用吗?我是否需要在每个页面上加载内联代码而不是将其放在外部文件中?

4

2 回答 2

1

您必须触发“pageshow”事件的页面浏览量。

请参阅:http ://roughlybrilliant.com/jquery_mobile_best_practices#7

尝试这个:

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 文件的末尾。

于 2012-10-06T19:42:42.853 回答
0
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 mobile 最佳实践和更具体的请参阅:http ://roughlybrilliant.com/jquery_mobile_best_practices#7

于 2013-08-27T14:07:31.117 回答