1

jQuery Mobile を使用しているサイトでブラウザーの戻るボタンをクリックすると、すぐにページを離れるのではなく、前のページがアニメーション化されます。これはどのように達成されますか? ブラウザーの戻るボタンを傍受する方法はないと思いました (ブラウザー メーカーがこれを許可しない理由はわかります)。ありがとう

4

1 に答える 1

0

ハッシュ 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

于 2012-04-04T17:19:20.020 に答える