【问题标题】:Update browser's URL without reloading the page在不重新加载页面的情况下更新浏览器的 URL
【发布时间】:2011-10-27 23:34:14
【问题描述】:

是否可以在不让浏览器转到该页面的情况下更改浏览器地址栏中显示的 URL?例如,通过 AJAX 调用更新页面内容后?

我的理解是这是不可能的,这就是为什么 twitter 和 facebook 等网站会在 ajax 调用上更新 hash-tag。

直到今天,当我继续 http://8tracks.com/ 并开始使用右侧的过滤器...打开和关闭不同的流派时,我注意到即使它正在执行 ajax 调用来刷新页面内容,URL也在动态更新中。

有人知道他们是怎么做到的吗?

(除此之外,我目前正在使用 Chrome,但是当我使用 IE9 再次查看时,我注意到 URL 没有更新......这可能是 Chrome 唯一的东西吗?)

【问题讨论】:

    标签: jquery ajax html browser-history pushstate


    【解决方案1】:

    你也可以使用 Jquery 历史插件。这也将支持 html4 浏览器。

    这里有一篇文章谈论它:http://veerasundaravel.wordpress.com/2011/12/02/change-browser-url-with-reloading-the-page-jquery-html5/

    这是另一个提供更多选择的问题:jQuery History Plugin

    【讨论】:

      【解决方案2】:

      通过使用 HTML5 History API,这在现代浏览器中是可能的:

      history.pushState(null, null, '/some-path')
      

      https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState%28%29.c2.a0method

      这适用于 Firefox、Chrome、Opera、Safari(不是 IE)。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 2020-10-04
      • 1970-01-01
      • 2021-01-13
      • 2015-12-03
      • 2013-07-07
      • 1970-01-01
      相关资源
      最近更新 更多