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

一种方法是使用 popstate,例如:

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

但是我不相信您应该能够专门检测是否按下了“后退”按钮 - 您的页面旨在以相同的方式使用状态信息,无论是否按下后退或前进按钮(或两者都没有)。

于 2013-08-14T11:54:15.723 回答