示例
注意
方法
經常使用window.location,它的結構總是記不住,簡單梳理下,友善以後查詢。
URL:http://b.a.com:88/index.php?name=kang&when=2011#first
屬性
含義
值
protocol:
協定
"http:"
hostname:
伺服器的名字
"b.a.com"
port:
端口
"88"
pathname:
URL中主機名後的部分
"/index.php"
search:
"?"後的部分,又稱為查詢字元串
"?name=kang&when=2011"
hash:
傳回"#"之後的内容
"#first"
host:
等于hostname + port
"b.a.com:88"
href:
目前頁面的完整URL
"http://www.a.com:88/index.php?name=kang&when=2011#first"
window.location和document.location互相等價的,可以交換使用
location的8個屬性都是可讀寫的,但是隻有href與hash的寫才有意義。例如改變location.href會重新定位到一個URL,而修改location.hash會跳到目前頁面中的anchor(<a id="name">或者<div id="id">等)名字的标記(如果有),而且頁面不會被重新加載
URL:http://b.a.com:88/index.php?name=kang&how=#when=2011#first
"?name=kang&how="
第一個"?"之後
"#when=2011#first"
第一個"#"之後的内容
<dl></dl>
<dt>location.assign( url )</dt>
<dd>location.assign('http://www.baidu.com'); 等同于 window.location = 'http://www.baidu.com'</dd>
這種方式會講新位址放到浏覽器曆史棧中,意味着轉到新頁面後“後退按鈕”仍可以回到該頁面。
<dt>location.replace( url )</dt>
<dd>與assign方法一樣,但會從浏覽器曆史棧中删除本頁面,也就是說跳轉到新頁面後“後退按鈕”不能回到該頁面。目前IE、Chrome隻是簡單的跳轉,隻有Firefox會删除本頁面的曆史記錄。</dd>
<dt>location.reload( force )</dt>
<dd>重新載入目前頁面。force為true時從伺服器端重載;false則從浏覽器緩存中重載,預設值false。</dd>