javascript - 使用 AJAX/jQuery 加载页面和 history.pushState() 方法保留浏览器 "back"按钮功能

标签 javascript ajax jquery browser-history pushstate

我想在通过 AJAX(jQuery load 方法)加载页面并通过 history.pushState 将 URL 推送到浏览器栏时保留后退按钮功能方法。当单击浏览器后退按钮并且第一次单击仅恢复以前的 URL 但不加载以前的页面时,就会出现问题。

到目前为止,这是我的代码:

$(function(){
  var profile_url= "/profile";
   $('#click_button').click(function(){
      $('#main_content').load(profile_url);
      history.pushState({profile:profile_info}, "profile", profile_url);
   });
});

我的问题是,有什么方法可以在第一次单击后退按钮时将上一页的 AJAX 加载到 #main_content div 中?

如有任何帮助/建议,我们将不胜感激。

最佳答案

我想指导大家使用一个名为 PJAX 的 jQuery 插件,它可以完成我最终感兴趣的问题。 Pjax() 结合了 jQuery AJAX 和 pushState 用于页面加载和保存浏览器历史记录。

这是 the code , 这是一个 nice demo pjax() 的实际应用。

它真的很棒而且易于使用,在演示中,只需记得单击那里的复选框以帮助演示 pjax() 的功能。

关于javascript - 使用 AJAX/jQuery 加载页面和 history.pushState() 方法保留浏览器 "back"按钮功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767561/

相关文章:

php - Lightbox 中的 Facebook API 登录和权限请求。是否可以?

javascript - Bootstrap 类 ='page-scroll' 不起作用

javascript - 在两个字段上自动完成 ajax

javascript - AJAX 最佳实践是什么?

javascript - 将字符串从 JQuery 函数发送到 Flask

javascript - 为什么这个 jQuery 返回 true?

javascript - 从随机部分加载页面时将类添加到标题

javascript - 为什么 Javascript 在有两个字符时只将回车符算作一个字符?

javascript - 如何使用ajax将更新推送到表单中

ajax - 合并 apache 请求?