完全不包含任何路径信息,就像链接中一样:
window.location.replace("page2.aspx")
这里有一个实时例子。该示例在以下地址之间切换:
http://jsbin.com/asupup/2 -- "2" 对应于你的 "page1.aspx"
...和
http://jsbin.com/asupup/3 -- "3" 对应于你的 "page2.aspx"
因此,2
页面使用了
window.location.replace("3")
...并且第3
页使用了...
window.location.replace("2")
关于URL(特别是相对URL)的更多信息,请参见RFC3986。但基本上:
http://foo.com/one/two/page.html
+ bar.html
= http://foo.com/one/two/bar.html
如果相对 URL 以
../
开头,它会替换最后一段和上面的一段:
http://foo.com/one/two/page.html
+ ../bar.html
= http://foo.com/one/bar.html
请注意,two
子文件夹已被替换。可以使用多个../
来向上移动多个级别:
http://foo.com/one/two/three/four/page.html
+ ../../bar.html
= http://foo.com/one/two/bar.html
如果一个相对URL以单个
/
开头,它会替换掉主机名(和端口,如果有的话)后面的所有内容。所以:
http://foo.com/one/two/page.html
+ /bar.html
= http://foo.com/bar.html
http://foo.com:8080/one/two/page.html
+ /bar.html
= http://foo.com:8080/bar.html
如果一个相对URL以
//
开头,它将替换掉协议后面的所有内容,因此:
If a relative URL starts with //
, it replaces everything following the protocol, so:
http://ex.com/folder/page.html
+ //foo.com
= http://foo.com
(当加载资源时,这很方便,因为您不必担心 http
与 https
以及混合内容警告。)