經常使用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
search:
"?name=kang&how="
第一個"?"之後
hash:
"#when=2011#first"
第一個"#"之後的內容
search:"?name=kang&how="第一個"?"之後
hash:"#when=2011#first"第一個"#"之後的內容
方法
location.assign( url )
location.assign('http://www.baidu.com'); 等同於 window.location = 'http://www.baidu.com'
這種方式會講新地址放到浏覽器歷史棧中,意味著轉到新頁面後“後退按鈕”仍可以回到該頁面。
location.replace( url )
與assign方法一樣,但會從浏覽器歷史棧中刪除本頁面,也就是說跳轉到新頁面後“後退按鈕”不能回到該頁面。目前IE、Chrome只是簡單的跳轉,只有Firefox會刪除本頁面的歷史記錄。
location.reload( force )
重新載入當前頁面。force為true時從服務器端重載;false則從浏覽器緩存中重載,默認值false。