Javascript Url操作和后退导航

时间:2012-06-30 17:11:34

标签: javascript browser-history pushstate

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

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

这样可以正常工作,但是当用户点击后退按钮时,网址会更新,但页面不会重新加载。

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

:有没有办法强制网页重新加载来自用户的浏览器后退/转发操作的给定网址?

Bonus Q :此外,如果浏览器在旧浏览器上不支持window.history.pushState该怎么办?我可以在try / catch块中包含该代码吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

我发现它正在读这个帖子:

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

我希望它有所帮助。

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

只是我的意见;)

编辑:小心IE9,它没有处理。 thx到nbrooks获取信息