window.location

基礎(chǔ)

示例
URL:http://b.a.com:88/index.php?name=kang&when=2011#first

屬性 含義
protocol 協(xié)議 "http:"
hostname 域名 "b.a.com"
port 端口 "88"
pathname 路徑名 "/index.php"
search 查詢字符串("?"后的部分) "?name=kang&when=2011"
hash 錨點(返回"#"之后的內(nèi)容) "#first"
host 等于hostname + port "b.a.com:88"
href 當(dāng)前頁面的完整URL "http://www.a.com:88/index.php?name=kang&when=2011#first"

注意
例如:URL:http://b.a.com:88/index.php?name=kang&how=#when=2011#first
search: "?name=kang&how=" 從第一個"?"之后,直到"#"之前的內(nèi)容。包含"?"
hash: "#when=2011#first" 第一個"#"之后的內(nèi)容,直到URL末尾,包含"#"

  1. window.location和document.location互相等價的,可以交換使用。
  2. location的8個屬性都是可讀寫的,但是一般來說只有href與hash的寫才有意義。
    注:例如改變location.href會重新定位到一個URL,而修改location.hash會跳到當(dāng)前頁面中的anchor(<a id="name">或者<div id="id">等)名字的標(biāo)記(如果有),而且頁面不會被重新加載。

使用詳情

  1. location.assign( url )
    location.assign('http://www.baidu.com'); 等同于 window.location = 'http://www.baidu.com'
    這種方式會將新地址放到瀏覽器歷史棧中,意味著轉(zhuǎn)到新頁面后“后退按鈕”仍可以回到該頁面。

  2. location.replace( url ):
    與assign方法一樣,但會從瀏覽器歷史棧中刪除本頁面,也就是說跳轉(zhuǎn)到新頁面后“后退按鈕”不能回到該頁面。目前IE、Chrome只是簡單的跳轉(zhuǎn),只有Firefox會刪除本頁面的歷史記錄。

  3. location.reload( force )
    重新載入當(dāng)前頁面。force為true時從服務(wù)器端重載;false則從瀏覽器緩存中重載,默認值false。

  4. location.hash
    要使用 JS 定位錨點,完全可以使用 window.hash 配合元素 ID 完成。比如快速定位到頁面的某條評論,則直接使用如下代碼即可:
    window.location.hash = "#comment-5981";
    另外 Twitter、Facebook、Google 等已經(jīng)開始大量使用 #! 這種形式的 hash 方法處理異步交互頁面的 URL 可回溯功能。

  5. location.search
    如果有這樣一個 URL 地址:
    http://www.google.com.hk/search?hl=zh-CN&source=hp&biw=1400&bih=935&q=%E8%8A%92%E6%9E%9C%E5%B0%8F%E7%AB%99&aq=f&aqi=&aql=&oq=
    如何利用 JS 腳本捕獲頁面 GET 方式請求的參數(shù)?其實直接使用 window.location.search 獲得,然后通過 split 方法結(jié)合循環(huán)遍歷自由組織數(shù)據(jù)格式。
    另外,如果根據(jù)用戶的搜索條件刷新頁面,只需直接設(shè)置 window.location.search 即可。

  6. window.open
    于window.open的參數(shù)小結(jié)(參書改編) 先看一個例子:
    window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes, menubar=no,location=no");
    此語句打開一個新窗口,頁面為webpage.asp,參數(shù)為var,名字為Derek,高為100,寬為100,顯示狀態(tài)欄和工具條,不顯示菜單和地址。

具體總結(jié)的各個屬性參數(shù)如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址

name:新窗口的名稱,可以為空
_blank 表示新開一個窗口,
_parent表示父框架窗口,
_self表示覆蓋該窗口,
xxx表示覆蓋名字為xxx的窗口
(每個窗口都可以給他命名,不能為省略,可以為空!)

featurse:屬性控制字符串,在此控制窗口的各種屬性,屬性之間以逗號隔開。
fullscreen= { yes/no/1/0 } 是否全屏,默認no
channelmode= { yes/no/1/0 } 是否顯示頻道欄,默認no
toolbar= { yes/no/1/0 } 是否顯示工具條,默認no
location= { yes/no/1/0 } 是否顯示地址欄,默認no
directories = { yes/no/1/0 } 是否顯示轉(zhuǎn)向按鈕,默認no
status= { yes/no/1/0 } 是否顯示窗口狀態(tài)條,默認no
menubar= { yes/no/1/0 } 是否顯示菜單,默認no
scrollbars= { yes/no/1/0 } 是否顯示滾動條,默認yes
resizable= { yes/no/1/0 } 是否窗口可調(diào)整大小,默認no
width=number 窗口寬度(像素單位)
height=number 窗口高度(像素單位)
top=number 窗口離屏幕頂部距離(像素單位)
left=number 窗口離屏幕左邊距離(像素單位)

replace : 一個可選的布爾值。規(guī)定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創(chuàng)建一個新條目,還是替換瀏覽歷史中的當(dāng)前條目。支持下面的值:
true - URL 替換瀏覽歷史中的當(dāng)前條目。
false - URL 在瀏覽歷史中創(chuàng)建新的條目。

總結(jié):

至此window.location 總結(jié)的七七八八了。日常的開發(fā)中,這些足夠揮霍了。

參考博客:
https://www.cnblogs.com/lanchar/p/5764436.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容