1

私はjQueryモバイルプロジェクトに取り組んでおり、ユーザーが特定のページに戻るのを防ぐ必要があります.UIは明らかに、ユーザーが戻ってはならない戻るボタンを提供していませんが、ユーザーがブラウザの戻るボタンをクリックします。

pagebeforechange イベントを関数にバインドすることで、ユーザーが戻ってこないようにしようとしていました。この関数は、宛先ページの URL を見て、ユーザーが戻るかどうかを知ることができます。私のプロジェクトでは、UI からアクセスできる URL は 2 つしかないため、これは簡単です。それ以外の URL は、ユーザーが戻るボタンを押すことを意味します。これを検証するために、URL の性質上、正規表現を使用しています。

$( document ).bind('pagebeforechange', function(event, data) {  

  if(typeof data.toPage === "string") {
    var url = data.toPage;
    var regex = /.../
    var paramsIndex = url.indexOf('?'); // Get rid of possible params

    if(paramsIndex > 0) {
      url = url.substr(0, paramsIndex);
    }

    if(regex.test(url)) {   
       event.preventDefault(); // Prevent the user from going back..
    }       
  }

});

残念ながら、正規表現が適切に機能し、ユーザーが戻るボタンを押すたびに (そしてその時だけ) 一致するにもかかわらず、これは機能しません。jquery mobile の ajax ナビゲーションを引き続き使用したいと思います。

乾杯

4

2 に答える 2

0

return false;サミュエルが言ったように、または追加するevent.stopImmediatePropagation();

于 2012-11-11T05:20:53.387 に答える
0

私はモバイル開発の専門家ではありませんが、この質問を見て、おそらくこれを試してみてください: イベント ハンドラーを に置き換えevent.preventDefault();ますreturn false;。これにより、目標を達成するチャンスが増えるだけです。

于 2012-06-14T07:27:36.300 に答える