window.location 對(duì)象不僅可以獲得當(dāng)前頁面的地址 (URL)搬俊,還能夠?qū)g覽器重定向到新的頁面咕娄。
在谷歌中搜索關(guān)鍵詞"google"昌执,打開chrome的調(diào)試工具摄杂,在Console
一欄中輸入window.location
萄窜,出現(xiàn)如下圖所示(包含location的多個(gè)屬性):
接下來以
http://www.myurl.com:8866/test?id=123&username=xxx
作為栗子铃剔,介紹一下location的常用屬性:
window.location.href(當(dāng)前URL)
結(jié)果如下:
http://www.myurl.com:8866/test?id=123&username=xxx
window.location.protocol(協(xié)議)
結(jié)果如下:
http:
window.location.host(域名 + 端口)
結(jié)果如下:
www.myurl.com:8866
window.location.hostname(域名)
結(jié)果如下:
www.myurl.com
window.location.port(端口)
結(jié)果如下:
8866
window.location.pathname(路徑部分)
結(jié)果如下:
/test
window.location.search(請(qǐng)求的參數(shù))
結(jié)果如下:
?id=123&username=xxx
通常由于業(yè)務(wù)需要,前端頁面中的某個(gè)數(shù)據(jù)源來源查刻,需要我們?nèi)カ@取URL的某個(gè)參數(shù)值番宁。這時(shí)封裝一個(gè)輸入?yún)?shù)名獲取對(duì)應(yīng)參數(shù)值的函數(shù)是必不可少的,如下所示:
function getQuery(name) {
// 正則:[找尋'&' + 'url參數(shù)名字' = '值' + '&']('&'可以不存在)
let reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
let r = window.location.search.substr(1).match(reg);
if(r != null) {
// 對(duì)參數(shù)值進(jìn)行解碼
return unescape(r[2]);
}
return null;
}
// 調(diào)用方法赖阻,注意需要傳入String類型的數(shù)據(jù)蝶押,輸出結(jié)果為String類型
getQuery('id'); // '123'
window.location.origin('?'前邊的URL)
結(jié)果如下:
http://www.myurl.com:8866