天天看點

JavaScript window.location對象

示例

注意

方法

經常使用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>