Ajax分页 - 启用后退按钮

Ale*_*lex 5 ajax asp.net-mvc jquery

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

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

谢谢您的帮助!

geo*_*wa4 4

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

编辑:

获取网址:

var baseURL = location.href.slice(0, location.href.indexOf('#'));
Run Code Online (Sandbox Code Playgroud)

然后将新资源添加到 URL:

location.href = baseURL + '#page2';
//you'll probably want to figure out the page number programatically
Run Code Online (Sandbox Code Playgroud)

但不要忘记在加载时访问正确的资源:

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

当然,您可能会找到一个插件来为您完成这一切。