1

AJAX リクエストを使用して入力されたフォームに取り組んでいます。フォームが送信されると、検索結果が表示されます。ユーザーが [戻る] ボタンを押すと、AJAX を利用したフォームは最初の選択フィールドのみの初期状態になります。

history.js を追加して、選択内容を記憶してリロードできるようにしました。残念ながら、これはオーガニック アクセス (ブラウザーに URL を入力) でページに戻ったときにも発生します。検索フォームに戻るためにブラウザの戻るボタンが使用されたかどうかを検出するにはどうすればよいですか?

$('document').ready(function() {
  History = window.History;
  StateData = History.getState().data;

  // ... stuff happens

  // at this point, there has to be a check so it doesn't execute this code
  // for organic visits
  for(var field in StateData) {
    // this is just a basic example
    if( StateData[field] == 'foo' ){
      $('#foo').click();
    }
    // there are more fields here
  }
});
4

1 に答える 1

1

1 つのアプローチは、popstate を使用することです。

 window.addEventListener('popstate', function(event) {
    var State = History.getState(); 
    console.log( 'State: ' + State );
 });

しかし、「戻る」ボタンが押されたかどうかを具体的に検出できるようになっているとは思いません。ページは、戻るボタンまたは進むボタンが押されたかどうか (またはどちらも押されていないか) と同じように状態情報を使用することを意図しています。

于 2013-08-14T11:54:15.723 に答える