Ajax分页 – 启用后退按钮

可能重复:
如何:后退按钮支持“Ajax”

我有一个ASP.NET MVC实现,我通过jQuery获取部分视图,例如分页和过滤。 问题是我通过这样做打破了浏览器的后退按钮。 如何恢复后退按钮行为(使用pound重写URL而不刷新?不确定它是如何工作的,以及如何在触发后退按钮时重新获取数据。)

谢谢您的帮助!

如您所知,javascript分页会杀死后退按钮。 但它也会杀死链接到给定页面的能力。 为避免页面重新加载,但维护后退按钮,您需要在URL中使用#。 然后,您将能够使用后退按钮(并直接链接到页面),但是您需要在页面加载时解析URL,将页面移动到正确的页面。

编辑:

获取url:

var baseURL = location.href.slice(0, location.href.indexOf('#')); 

然后使用新资源添加到URL:

 location.href = baseURL + '#page2'; //you'll probably want to figure out the page number programatically 

但是不要忘记在加载时去正确的资源:

 $(goToResource); function goToResource() { var hashURL = location.href.slice(location.href.indexOf('#')); //you AJAX code to load the resource goes here } 

当然,您可能会找到一个插件来为您完成所有这些操作。

尝试使用jquery.history插件。 它可以很好地完成你想要的。

请在此页面上查看添加浏览器历史记录支持

文章没有提到这对开箱即用的IE不起作用。 您需要在您的页面中包含一个iframe才能使其与IE一起使用。

  

我只检查过IE7和Firefox。 鉴于IE没有记录的问题,我不相信它可以在各种各样的浏览器中使用