【问题标题】:Changing the URL with jQuery without reloading the page使用 jQuery 更改 URL 而无需重新加载页面
【发布时间】:2010-10-25 09:01:52
【问题描述】:

如何在不重新加载页面的情况下使用 jQuery 更改 URL?

【问题讨论】:

  • 更改是指完整的新url还是在现有url中添加一些参数?
  • 是的,你到底想达到什么目的?

标签: javascript jquery


【解决方案1】:

设置location.hash

jQuery 与它无关,这是基本的 DOM 0。

【讨论】:

  • 这正是我所需要的:)
【解决方案2】:

您只能通过location.hash 更改网址的哈希部分而无需刷新页面。 添加 get 参数 (?foo=bar) 或完整的 url 更改将始终重新加载页面。

在 HTML5 中,您可以获得更多更改 URL 的选项,但现在(2010 年)它还不可行,因为糟糕的浏览器很难消亡。

【讨论】:

  • 严格来说,这不再是真的了。查看 HTML5 历史 API:developer.mozilla.org/en/DOM/…
  • @DanSingerman 这不适用于 IE7/8,因此在 imo 中仍然不可行。虽然我希望它是这样,但我不会将我的 awnsers 建立在它的基础上。
  • -1:片段标识符(或哈希)是 URL 的“真实”部分,可以从 javascript 更改。所以,“你可以”
  • 我知道。但是,当您像以前那样给出绝对值时,我认为提及技术如何变化是一个有效的警告。请记住,这个答案应该存在多年。
【解决方案3】:

一般来说,抛开新的HTML history API,你不能。

可以在散列后向 URL 添加数据(使用 location.hash,正如 David Dorward 所描述的那样)。但是,如果您想这样做来影响页面的行为,您还需要通过 jQuery 读取这些更改(或由设置哈希的同一进程触发。)

在 History API 之外,您将无法添加参数,并且页面“只知道”。

【讨论】:

    猜你喜欢
    • 2016-01-12
    • 2016-02-01
    • 2013-04-25
    • 2021-03-12
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2019-07-10
    • 2016-04-12
    相关资源
    最近更新 更多