1

我正在使用以下内容更新网址:

window.history.pushState(null, "Page title", "/?param=" + myParamValue);

这很好用,但是当用户点击后退按钮时,url 会更新,但页面不会重新加载。

我有一个更新内容的 ajax 例程,但如果可能的话,我不想重新实现后退/前进导航,我只想在用户点击后退/前进浏览器按钮的情况下重新加载页面。

:有没有办法强制页面在用户的浏览器后退/前进操作中重新加载给定的 url?

额外问题:另外,如果浏览器不支持window.history.pushState旧浏览器怎么办?我应该将该代码包含在 try/catch 块中吗?

4

2 回答 2

3
if(typeof window.history.pushState === 'function')
    //handle your url rewriting
else
    //support for older browsers

至于您关于后退按钮支持的问题,评论中提供的链接为该功能提供了非常好的实现

于 2012-06-30T17:21:06.380 回答
1

你应该看看这个 jQuery 插件,它可能对你有用:

http://www.asual.com/jquery/address/

我发现它阅读了这个线程:

https://stackoverflow.com/questions/116446/what-is-the-best-back-button-jquery-plugin

我希望它有所帮助。

关于旧的浏览器问题,我认为您不必为此烦恼,因为您使用的是 ajax,这也需要现代浏览器。主要问题是:谁会访问您的网站?如果主要是40岁以上的人,也许你应该打扰......

只是我的观点 ;)

编辑:小心 IE9,它没有在其中处理。谢谢 nbrooks 的信息

于 2012-06-30T17:20:54.350 回答