【问题标题】:Javascript Url manipulation and back navigationJavascript Url 操作和后退导航
【发布时间】:2012-06-30 17:11:34
【问题描述】:

我正在用这样的东西更新网址:

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

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

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

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

Bonus Q:另外,如果浏览器在旧版浏览器上不支持 window.history.pushState 怎么办?我是否应该将该代码包含在一个 try/catch 块中?

【问题讨论】:

标签: javascript browser-history pushstate


【解决方案1】:
if(typeof window.history.pushState === 'function')
    //handle your url rewriting
else
    //support for older browsers

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

【讨论】:

    【解决方案2】:

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

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

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

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

    希望对你有帮助。

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

    只是我的看法;)

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

    【讨论】:

    • 谢谢,关于跨浏览器支持...大声笑 - 有人可能在 IE8/9 或 smt 上,但不是大问题 :)
    • IE 9 处理这个!不是吗?? IE8 是另一个故事...... :) 正如我所说:只是我的意见。我不再为旧浏览器烦恼,我只是检查 PHP 并回显:“去获取一个真正的浏览器”页面。这可能很愚蠢,但这是一个选择。
    • @Maresh 不支持,直到 IE 10
    • 哇...真可惜,IE9 有一个很好的 JS 引擎,还有一些我喜欢的东西,它在我的尊重中倒退了...
    猜你喜欢
    • 2020-10-15
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    相关资源
    最近更新 更多