1. 程式人生 > >window.location物件詳解

window.location物件詳解

window.location.href(當前URL)

結果如下:
http://www.myurl.com:8866/test?id=123&username=xxx

window.location.protocol(協議)

結果如下:
http:

window.location.host(域名 + 埠)

結果如下:
www.myurl.com:8866

window.location.hostname(域名)

結果如下:
www.myurl.com

window.location.port(埠)

結果如下:
8866

window.location.pathname(路徑部分)

結果如下:
/test

window.location.search(請求的引數)

結果如下:
?id=123&username=xxx

通常由於業務需要,前端頁面中的某個資料來源來源,需要我們去獲取URL的某個引數值。這時封裝一個輸入引數名獲取對應引數值的函式是必不可少的,如下所示:

function getQuery(name) {
  // 正則:[找尋'&' + 'url引數名字' = '值' + '&']('&'可以不存在)
    let reg = new
RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); let r = window.location.search.substr(1).match(reg);//substr() 的引數指定的是子串的開始位置和長度,因此它可以替代 substring() 和 slice() 來使用,但是它沒有標準化 if(r != null) { // 對引數值進行解碼 return unescape(r[2]); } return null; } // 呼叫方法,注意需要傳入String型別的資料,輸出結果為String型別
getQuery('id'); // '123'

不過unescape解碼方法已經廢除了。註釋:ECMAScript v3 已從標準中刪除了 unescape() 函式,並反對使用它,因此應該用 decodeURI() 和 decodeURIComponent() 取而代之。

window.location.origin('?'前邊的URL)

結果如下:
http://www.myurl.com:8866



連結:https://www.jianshu.com/p/c9324d237a8e