3

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

这可以做到吗?

stackoverflow.com -> quora.com


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

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

4

3 回答 3

4

看起来不可能通过设计更改域:

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

引用文章:

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

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

于 2013-06-24T18:07:15.747 回答
1

回答您是否可以执行以下操作的问题:

stackoverflow.com -> quora.com

使用 HTML 历史 API 仅允许将状态推送到同一域的 url 内,因此答案是否定的。

于 2013-06-24T18:25:58.937 回答
0

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

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

于 2013-06-24T18:21:49.627 回答