【问题标题】:Change ENTIRE URL w/o page reload在不重新加载页面的情况下更改整个 URL
【发布时间】:2013-06-21 08:02:16
【问题描述】:

是否可以在不重新加载页面并实际转到新 URI 的情况下更改页面的整个 URI?我知道我们可以更改相对于根域的 URL,即 stackoverflow.com -> stackoverflow.com/asdf

这个可以吗?

stackoverflow.com -> quora.com


我要求确保这是不可能的。

编辑:这个问题是不同的,因为我在问是否有可能不仅改变域之后的路径,而且改变域本身。

【问题讨论】:

  • 我认为该问题解决了在不更改域名的情况下修改 URI,即 stackoverflow.com -> stackoverflow.com/asdf
  • 我希望this post 有所帮助。

标签: javascript html url browser


【解决方案1】:

按照设计,似乎无法更改域:

http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate

引用文章:

window.history.pushState(data, "Title", "/new-url");

最后一个参数是新的 URL。出于安全原因,您只能 更改 URL 的路径,而不是域本身。

【讨论】:

  • 谢谢。这就是我一直在寻找的答案。
【解决方案2】:

回答您是否可以做到以下几点:

stackoverflow.com -> quora.com

使用 HTML 历史 API 仅允许将状态推送到 在同一域的 url 中,因此答案是 no

【讨论】:

  • 谢谢。这就是我一直在寻找的答案。
【解决方案3】:

之前遇到过这个问题,如果不重新加载就找不到解决方法... 它是 Location 对象 http://www.w3schools.com/jsref/obj_location.asp 的一部分。即使您更改查询参数,它也会重新加载页面,这是有道理的,最终是一个不同的 URL。 到目前为止,您唯一能做的就是使用 #(哈希)参数。

HTML5 History API http://html5demos.com/history 可能对您有所帮助。它会根据您的需要以某种方式修改 url...但仅适用于子域。

【讨论】:

    猜你喜欢
    • 2020-10-04
    • 2013-07-07
    • 1970-01-01
    • 2016-10-28
    • 2020-04-20
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多