1

戻るボタン (Android のハードウェア、iPhone のソフトウェア) を無効にするか、ユーザーを別のページ (以前のページ) にリダイレクトする方法を探しています。

これの私の理由は、悪意のある目的などではありません。私は試験ソフトウェアの一部に取り組んでいます。ユーザーは、試験/調査/クイズのすべての質問に回答し、フォームを送信すると、ページに移動してフィードバックが表示されます。現時点では、ハードウェアの [戻る] ボタンを押すと、データが既に送信されていることを示す警告ボックスが表示されますが、[OK] を押して試験に戻り、再送信することができます。したがって、同じ結果を再送信するか、変更を加えます。彼らの答えと再提出。

何らかの形で戻るボタンを無効にするか、ユーザーを新しいページにリダイレクトすることにより、この機能を無効にする方法を探しています。

アプリに関する情報を少し。試験フォームは Ajax を使用せずに送信されています。アプリ全体が 1 つの URL です。どのページにいても、URL は常に同じです。その URL をリロードすると、ログイン ページが表示されます (これはまったく問題ありません)。

HTML5 History 機能については既に調べましたが、新しいバージョンの Android ではサポートされていないため、使用できません。Android、iPhone、できれば Windows Phone 7 で動作するものが必要です。

4

4 に答える 4

4

BlackBerry または Android でハードウェアの [戻る] ボタンを無効にする実際の方法はありません。

できることは、バックpagebeforeshowハンドラーで無効になるセッション変数を維持し、試験ページのイベントでそのセッション変数をチェックすることです。

于 2012-07-11T15:38:27.130 に答える
1

この問題に少し関連していますが、Cordova / PhoneGapで jQuery Mobile を使用している場合、「backbutton」と呼ばれるイベントが発生するのを聞くことができます。これは必ず「deviceready」の後にバインドしてください。

以下の例:

document.addEventListener("backbutton", function (e) {
    e.preventDefault();
}, false);
于 2015-09-04T00:21:13.913 に答える
0

JavaScript を使用して、ハードウェアの [戻る] ボタンのクリック イベントをキャプチャできるはずです。

$(document).bind('keydown', function(event) {

  if (event.keyCode == 27) { // 27 = 'Escape' keyCode (back button)
    event.preventDefault();
  }
});
于 2012-10-12T13:39:55.970 に答える
-1

jQuery Mobile で [戻る] ボタンを無効にするには、ページのヘッダー div に data-backbtn="false" を含めます。

http://jquerymobile.com/demos/1.0a3/#docs/toolbars/docs-headers.htmlで同じことをテストできます

機能を変更するには、次のようにします。

<a href="/#default" data-icon="back">

これにより、毎回デフォルトのページにリダイレクトされます。

于 2012-07-11T05:06:33.243 に答える