如果用户点击后退按钮,我怎样才能重新加载带history.js的状态?

时间:2013-07-16 11:28:11

标签: jquery history.js

我正在处理使用AJAX请求填充的表单。提交表单后,将显示搜索结果。如果用户点击后退按钮,则AJAX供电表单处于初始状态,只有第一个选择字段。

我添加了history.js,以便记住选择并重新加载它们。不幸的是,当我通过有机访问(在broswer中输入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
  }
});

1 个答案:

答案 0 :(得分:1)

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

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

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