jQuery Mobile を使用しているサイトでブラウザーの戻るボタンをクリックすると、すぐにページを離れるのではなく、前のページがアニメーション化されます。これはどのように達成されますか? ブラウザーの戻るボタンを傍受する方法はないと思いました (ブラウザー メーカーがこれを許可しない理由はわかります)。ありがとう
1 に答える
ハッシュ URL スキームを使用する場合 (pushState
プラグインが有効になっていない場合):
ユーザーが [戻る] ボタンをクリックしたときなど、クリックとは無関係に発生するハッシュの変更は、Ben Alman の hashchange 特別なイベント プラグイン (jQuery Mobile に含まれる) を使用してウィンドウ オブジェクトにバインドされたhashchange イベントを通じて処理されます。ハッシュの変更が発生すると (および最初のページが読み込まれると)、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 が使用されます。
ソース: http://jquerymobile.com/demos/1.1.0-rc.1/docs/pages/page-navmodel.html
hashchange
イベントの MDN ドキュメントもここにあります: https://developer.mozilla.org/en/DOM/window.onhashchange