0%

JS 筆記 - location 認識

location
JavaScript 原生有處理頁面跳轉方法,因為基本上都是在全域的方式下使用,完整寫法為:

window.location.使用方法,但因為是全域物件下使用,window 可以省略。

以下筆記幾個常用的。

href 取得當前網頁的網址

通常會使用指定的連結或是按鈕,常用於 function 內。

寫法為 location.href='網址路徑'

EX. location.href='https://hsuchihting.github.io/'

hostname 取得當前網頁的網域名稱

使用方法如下:

1
location.hostname

就是只要這麼短就可以取得目前網頁的網域名稱。
CodePen https://codepen.io/hnzxewqw/pen/gOraZLw

pathname 取得當前網頁的網址路徑

跟取得 hostname 的方法異曲同工,是取得目前網址。

1
location.pathname

CodePen https://codepen.io/hnzxewqw/pen/zYqvyNe

search 取得當前網頁的網址參數

如果沒有網址參數則會返回空字串,返回的參數包含問號 ?。EX. ?參數
location.search 不僅可以用來讀取,還可以用來改變網址參數(會重新載入新網頁)。

1
location.search

CodePen https://codepen.io/hnzxewqw/pen/dyMYwWP

hash 取得當前網址的 hash 值

取得網址後面為 # 字號的值。

1
location.hash

CodePen https://codepen.io/hnzxewqw/pen/qBZOLPW

protocol 返回使用的 Web 協定

取得目前的網路協定。

1
location.protocol

CodePen https://codepen.io/hnzxewqw/pen/YzqydEq

assign() 載入新文件

location.assign() 方法跟 location.href 用法相近,可在當前視窗載入一個新的網頁。

語法:

1
location.assign(url);

用法:

1
location.assign('https://hsuchihting.github.io/');

reload() 重新載入頁面

Location.reload() 方法可以用來重新整理網頁。

語法:

1
location.reload(forcedReload);

參數 forcedReload 是一個布林值 (boolean),如果是 true 用來強制瀏覽器從 server 取得最新的資料;預設是 false,會優先從瀏覽器暫存檔 (cache) 中取得網頁資料。

用法:

location.reload(true);

location.replace()

location.replace() 也是用來在當前視窗載入一個新的網頁,但和 location.assign() 的差別在於,使用此方法當前網頁的瀏覽紀錄 (History) 會被新的網頁取代掉,也就是讓使用者沒辦法按「上一頁」回去。

語法:

1
location.replace(url);

用法:

location.replace(‘https://hsuchihting.github.io/');

參考資料