使用history.replaceState会中断浏览器后退/前进按钮

时间:2017-02-06 12:39:42

标签: javascript jquery ajax

在我的Ruby on Rails应用程序中,我实现了排序和分页以使用ajax。没什么特别的。我还添加了使用history.replaceState更新浏览器URL的代码,因此用户单击ajax排序链接,并更新浏览器地址栏,以便用户可以复制此URL并在以后使用它。我这样做了:

$(document).on('click', '[data-remote=true]', function() {
  history.replaceState(null, '', $(this).attr('href'));
  return false;
});

我的代码在以下情况中失败:

在Mozilla Firefox中:

  1. 访问主页:/ dashboard
  2. 使用ajax排序访问页面:/ patients
  3. 单击其中一个表列以通过ajax
  4. 对数据进行排序
  5. 点击浏览器后退按钮 - 将我重定向到/ dashboard,这是正常的
  6. 点击浏览器转发按钮将我重定向到/ patients?order_by = name,我想重定向到/ patients
  7. 在谷歌浏览器中:

    1. 访问主页:/ dashboard
    2. 使用ajax排序访问页面:/ patients
    3. 单击其中一个表列以通过ajax
    4. 对数据进行排序
    5. 点击浏览器后退按钮 - 将我重定向到/ dashboard,这是正常的
    6. 点击浏览器转发按钮,我将其重定向到/ patients?order_by = name但页面只包含js响应,没有布局或类似的内容。

0 个答案:

没有答案