Location 物件
是瀏覽器提供的原生物件,提供 URL 相關的資訊和操作方法。通過window.location
和document.location
屬性可以拿到這個物件。
一、屬性
location.href
:整個 UTLlocation.protocol
:當前 URL 的協議,包括冒號location.host
:主機,包括冒號和埠location.hostname
:主機名,不包括埠location.port
:埠號location.pathname
:URL 的路勁部分,從根路徑/
開始location.search
:查詢字串部分,從問號?
開始location.hash
:片段字串部分,從#
開始location.username
:域名前面的使用者名稱location.password
:域名前面的密碼location.origin
:URL 的協議、主機名和埠
這些屬性裡面,只有origin屬性是隻讀的,其他屬性都可寫。
二、方法
Location.assign()
方法接受一個 URL 字串作為引數,使得瀏覽器立刻跳轉到新的 URL。Location.replace()
方法接受一個 URL 字串作為引數,使得瀏覽器立刻跳轉到新的 URL。Location.reload()
方法使得瀏覽器重新載入當前網址,相當於按下瀏覽器的重新整理按鈕。Location.toString()
方法返回整個 URL 字串
URL 物件
URL 的編碼和解碼 js 提供四個 URL 的編碼/解碼方法
encodeURI()
方法用於轉碼整個 URL。它的引數是一個字串,代表整個 URL。它會將元字元和語義字元之外的字元,都進行轉義。encodeURIComponent()
方法用於轉碼 URL 的組成部分,會轉碼除了語義字元之外的所有字元,即元字元也會被轉碼。所以,它不能用於轉碼整個 URL。它接受一個引數,就是 URL 的片段。decodeURI()
方法用於整個 URL 的解碼。它是encodeURI()
方法的逆運算。它接受一個引數,就是轉碼後的 URL。decodeURIComponent()
用於URL 片段的解碼。它是encodeURIComponent()
方法的逆運算。它接受一個引數,就是轉碼後的 URL 片段。
它的例項屬性和location
物件的屬性基本一致,多了一個
URL.searchParams
返回一個URLSearchParams
例項,該屬性是Location
物件沒有的