是否可以在不重新加载页面并实际转到新 URI 的情况下更改页面的整个 URI?我知道我们可以更改相对于根域的 URL,即 stackoverflow.com -> stackoverflow.com/asdf
这可以做到吗?
stackoverflow.com -> quora.com
我要求确保这是不可能的。
编辑:这个问题是不同的,因为我在问是否有可能不仅改变域之后的路径,而且改变域本身。
是否可以在不重新加载页面并实际转到新 URI 的情况下更改页面的整个 URI?我知道我们可以更改相对于根域的 URL,即 stackoverflow.com -> stackoverflow.com/asdf
这可以做到吗?
stackoverflow.com -> quora.com
我要求确保这是不可能的。
编辑:这个问题是不同的,因为我在问是否有可能不仅改变域之后的路径,而且改变域本身。
看起来不可能通过设计更改域:
http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate
引用文章:
window.history.pushState(data, "Title", "/new-url");
最后一个参数是新的 URL。出于安全原因,您只能更改 URL 的路径,而不能更改域本身。
回答您是否可以执行以下操作的问题:
stackoverflow.com -> quora.com
使用 HTML 历史 API 仅允许将状态推送到同一域的 url 内,因此答案是否定的。
之前在这个问题上苦苦挣扎,如果不重新加载就找不到解决方法......它是 Location 对象http://www.w3schools.com/jsref/obj_location.asp的一部分。即使您更改查询参数,它也会重新加载页面,这是有道理的,最终是一个不同的 URL。到目前为止,您唯一能做的就是使用 #(哈希)参数。
HTML5 History API http://html5demos.com/history可能对您有所帮助。它会根据您的需要以某种方式修改 url……但仅适用于子域。