jQueryMobileでブラウザ戻るを使うとバグが発生する
jQueryMobileでブラウザボタンを使うと、なぞのlodingが始まる件
久々に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で作った場合
は 気にしなくてよいみたいです