10

我正在使用 ASP.NET Ajax 编写一个简单的相册应用程序。
该应用程序使用异步 Ajax 调用来预加载相册中的下一张照片,而无需更改浏览器中的 URL。

问题是当用户点击浏览器中的后退按钮时,应用程序不会返回到上一张照片,而是导航到应用程序的主页。

有没有办法欺骗浏览器将每个 Ajax 调用添加到浏览历史记录中?

4

8 回答 8

17

更新:现在有 HTML5 History API(pushState、popState),它弃用了 HTML4hashchange功能。History.js提供跨浏览器兼容性和 HTML4 浏览器的可选 hashchange回退。

这个问题的答案与我对这些问题的答案或多或少相同:

总之,你肯定想看看这两个项目,它们解释了整个 hashchange 过程并将 ajax 添加到混合中:

  • jQuery 历史(使用哈希来管理您的页面状态并绑定到更改以更新您的页面)。

  • jQuery Ajaxy(jQuery History 的 ajax 扩展,允许完整的 ajax 网站,同时完全不显眼并且可以优雅地降解)。

于 2010-08-28T17:11:58.643 回答
4

MSDN 有一篇关于在 ASP.NET AJAX 中管理浏览器历史记录的文章

于 2008-08-27T10:57:25.537 回答
3

许多网站使用隐藏的 iframe 来执行此操作,只需使用新 URL 刷新 iframe,即可将其添加到浏览历史记录中。然后,您所要做的就是处理您的应用程序如何对这些“后退按钮”事件做出反应——您要么需要检测 iframe 的状态/位置,要么使用该 URL 刷新页面。

于 2008-08-27T10:57:57.470 回答
2

您可以使用简单且轻量级的 PathJS库。

使用示例:

Path.map("#/page1").to(function(){
    ...
});

Path.map("#/page2").to(function(){
    ...
});

Path.root("#/mainpage");
Path.listen();
于 2012-04-19T17:53:39.820 回答
0

信息:Ajax 导航是即将到来的 IE8 的常规功能

于 2008-08-27T15:15:42.903 回答
0

3.5 SP1 更新现在支持 ASP.NET ajax 中的浏览器历史记录和后退按钮。

于 2008-08-27T11:28:03.013 回答
0

对于所有关于后退按钮的解决方案,它们都不是“自动的”。对于每一个,您都必须做一些工作来保持页面的状态。所以不,没有办法“欺骗”浏览器,但是有一些很棒的库可以帮助您使用后退按钮。

于 2008-08-27T12:45:11.893 回答
0

如果您使用的是 Rails,那么一定要尝试 Wiselinks https://github.com/igor-alexandrov/wiselinks。它是浏览器状态管理的一把瑞士军刀。以下是一些细节:http: //igor-alexandrov.github.io/blog/2013/07/11/the-way-to-wiselinks-1-dot-0/

于 2013-07-13T09:21:51.870 回答