我有一个 html5 移动应用程序,其中所有内容都存在于一个页面上,我使用 history.back/popstate/etc 来更改页面的内容(通过 jQuery Mobile)。我正在使用 Google Analytics 来跟踪各种事件,并在一个页面上跟踪用户是否通过特定按钮退出:
$('#my-back-button').bind('tap', function() {
_gaq.push(['_trackEvent', 'mycategory', 'myaction']);
history.back();
return false;
});
在 android 2.2 浏览器中,history.back() 被调用但 onpopstate 没有被触发并且页面没有被改变。如果我把它放在window.onpopstate = function() { alert("!"); };
history.back() 之前,我看不到任何警报。
如果我颠倒这两行(首先是history.back(),然后是_gaq.push),它似乎可以工作,但我不能在我的代码中依赖这种排序。
没有异常被抛出。它在 iOS 和桌面 Chrome 中运行良好。
任何想法为什么 history.back() 在谷歌分析调用后不起作用?