2012-04-04 5 views
1

jQuery Mobileでサイトのブラウザの戻るボタンをクリックすると、直前のページにアニメーションが表示されます。これはどのように達成されますか?私は彼らがブラウザの戻るボタンを傍受する方法がないと思った(ブラウザメーカーがこれを許可したくない理由を知ることができる)。おかげ戻るときにjQuery Mobileはどのようにページをアニメーション表示しますか?

答えて

0

ハッシュURLスキーム(有効になっていないpushStateプラグイン)を使用して:[戻る]ボタンをクリックする ユーザーは、なhashchangeを介して処理されているときのように独立してクリックの発生

ハッシュ変化を、イベント、 は、Ben Almanのhashchange 特別イベントプラグイン(jQuery Mobileに含まれています)を使用してウィンドウオブジェクトにバインドされています。ハッシュ変更 が発生すると(最初のページが読み込まれたときも)、hashchangeイベント ハンドラはlocation.hashを$ .mobile.changePage() 関数に送信し、参照されたページをロードまたは公開します。

出典:http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-navmodel.html

pushStateプラグインが同じになります有効になっているが、hashが読める/通常のURLに変換されます。変換オプション機能があり

前のセクションで説明した、より長い、ハッシュベースのURL をフルドキュメントパス クリーナーに変換し、URL構造内でAjaxトラッキングを透過的にします。 これは、Ajaxリンク用のハッシュベースのURLシステム の上に拡張として組み込まれています。名前にもかかわらず、 は現在のリリースでは が確実にターゲットプラットフォーム全体で動作するため、技術的には はhistory.replaceState( history.pushStateではない)を使用してハッシュベースのURLを変換します。 history.replaceStateをサポートしないブラウザの場合、またはこの機能が無効な場合は、ハッシュベースのURL が代わりに使用されます。

出典:https://developer.mozilla.org/en/DOM/window.onhashchange

:ここにもhttp://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-navmodel.html

hashchangeイベントのMDNドキュメントです

関連する問題