1

jQuery Mobile (少なくとも 1.1) には、「戻る」ボタンという便利な機能があります。ドキュメントの「戻るボタンのリンク」の章によると、リンク/ボタンを追加data-rel="back"すると、Web ブラウザの戻るボタンとまったく同じ機能がシミュレートされます。つまり、ユーザーの Web ブラウザーで前のページに戻ります。

この機能は優れています (そして機能します) が、モバイル アプリで適切な動作が得られない場合があります

だからあなたはウェブサイトを持っています。jquery モバイルです。

  • ページ A はランディング ページです
  • ページ B はページ A の子ページです
  • ページ C はページ B の子ページですが、ページ A の子ページでもあります
  • ここで、ボブはページ C の URL をアリスに渡します
  • Alice はページ C に移動し、サイトの残りの部分をチェックアウトしたいので戻るボタンを使用します。
  • Alice の Web ブラウザーは、前に表示していたページに戻ります (stackoverflow の可能性があります!)。
  • Alice は、なぜ別の Web サイトにリダイレクトされるのか理解できず、その惨めさのあまり、携帯電話を湖に投げ込みました。

ページ C に移動するには 2 つの方法があるため、開発者は戻るボタンを配置しました。名目上の使用例では、すべてのユーザーがページ A からアクセスしてブラウジングし、ページ C の戻るボタンが必要に応じて機能するためです。つまり、ページ A またはページ B に戻ります。しかし、アリスとボブがここにいる場合、戻るボタンはまったく別の Web サイトに移動します。

これがすべて明確であることを願っています:)

だから私が解決策として見ているのは:

  • ユーザーの履歴スタック内の以前の Web サイトが同じドメインにある場合: これを使用して戻る
  • そうでない場合:href属性値をナビゲーション ルールとして使用します。

だから...質問:これはjqmでサポートされていますか?ドキュメントで何かを見逃しましたか?何らかの方法で実装されていますか?自分で実装する必要がありますか?

4

1 に答える 1

0

これが完全に可能かどうかはわかりません。JQuerymobile では、次のように前のページを見つけることができます。

$("#C").on("pageshow",function(){
  if ( "undefined" == typeof $(ui.prevPage)[0] ){
     //disable-back button here
     //$("#C").removeAttr('data-rel');
     // $(window).unload( function () { alert("Bye now!"); } );
  } 
});

ただし、閲覧履歴はブラウザで管理されており、このページにたどり着いた時にはすでに履歴が設定されています。phonegap のようなフレームワークを使用している場合、 を呼び出すことnavigator.app.overrideBackbutton(true)で戻るボタンを無効にできる場合がありますが、ユーザーはどのように戻るのでしょうか? または、ユーザーがページを離れることを確認するように求める警告をユーザーに与えることができる場合があります。

于 2012-08-24T15:13:53.847 に答える