jQueryMobileでブラウザ戻るを使うとバグが発生する ITかあさん

ITかあさん

jQueryMobileでブラウザ戻るを使うとバグが発生する

jQueryMobileでブラウザボタンを使うと、なぞのlodingが始まる件

jQuerymobile ブラウザ戻るボタンのバグ

久々にjQueryMobileの話題。jQueryMobileのバグっぽい症例として

iPhoneのブラウザ戻るボタンを使うと、勝手にlodingが始まり、
前のページに戻ってしまう

と、いう問題。

jQueryMobileのlodingでページが読み込みされるのはAjaxページ遷移なわけで、
このAjaxページ遷移を切ったらうまくいくだろうと容易に想像つきます。

ただAjax遷移を切るだけじゃダメよ

この問題はAjax遷移を切るだけではだめなようです。

今回のバグに関する回避の記述例

$(document).bind('mobileinit', function(){
  $.mobile.ajaxEnabled = false;//Ajaxを切る
  $.mobile.ajaxLinksEnabled = false;//Ajaxページ遷移を切る
  $.mobile.ajaxFormsEnabled = false;//フォーム使用時もAjaxを切る
  $.mobile.hashListeningEnabled = false;//これが大事!!!!
});

$.mobile.hashListeningEnabledって?

location.hash の変更がないかチェックして、制御するみたいです。

jQueryMobile独自の、あの『loding』してページ遷移する機能がありますが、あの機能を利用するとURLにハッシュが付与されます。
今回のケースはそれに関わるバグなんじゃないか、ということですね。

PhoneGap利用したiPhoneアプリ開発時は気にしなくていいよ!

今回はブラウザの戻るボタンを利用した際のバグらしいので、

ブラウザの戻るボタンに依存しない PhoneGapなどを利用したJavascriptベースのiPhoneアプリをjQueryMobileで作った場合

は 気にしなくてよいみたいです

参考サイト

初夏のJavaScript祭 in サーキュレーションビル ForPro