すべてが 1 つのページに存在する html5 モバイル アプリがあり、history.back/popstate/etc を使用してページのコンテンツを変更します (jQuery Mobile 経由)。Google アナリティクスを使用してさまざまなイベントを追跡しています。あるページでは、ユーザーが特定のボタンを介して終了したかどうかを追跡しています。
$('#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() の直前に置くと、アラートは表示されません。
2 行を逆にすると (最初に history.back()、次に _gaq.push)、機能しているように見えますが、コード全体でこの種の順序付けに依存することはできません。
例外はスローされていません。iOS およびデスクトップ Chrome で問題なく動作します。
Google アナリティクスの呼び出し後に history.back() が機能しない理由はありますか?