前言
location 處理頁面跳轉的方法
JavaScript 原生有處理頁面跳轉方法,因為基本上都是在全域的方式下使用,完整寫法為:
window.location.使用方法,但因為是全域物件下使用,window 可以省略。
以下幾個是常用的方法。
href 取得當前網頁的網址
通常會使用指定的連結或是按鈕,常用於 function 內。
// location.href='網址路徑'
location.href='https://codepen.io/'
CodePen https://codepen.io/chunghuing/pen/jOqrYjG?editors=1010
hostname 取得當前網頁的網域名稱
location.hostname
CodePen https://codepen.io/chunghuing/pen/OJNXzKR?editors=1010
pathname 取得當前網頁的網址路徑
跟取得 hostname 的方法異曲同工,是取得目前網址。
location.pathname
CodePen https://codepen.io/chunghuing/pen/KKzMQpZ?editors=1010
search 取得當前網頁的網址參數
如果沒有網址參數則會返回空字串,返回的參數包含問號 ?。EX. ?參數
location.search 不僅可以用來讀取,還可以用來改變網址參數(會重新載入新網頁)。
location.search
CodePen https://codepen.io/chunghuing/pen/oNxLExv?editors=1010
hash 取得當前網址的 hash 值
取得網址後面為 # 字號的值。
location.hash
CodePen https://codepen.io/chunghuing/pen/rNeLJLQ?editors=1010
protocol 返回使用的 Web 協定
取得目前的網路協定。
location.protocol
CodePen https://codepen.io/chunghuing/pen/dyMXdOP?editors=1010
assign( ) 載入新文件
location.assign( ) 方法跟 location.href 用法相近,可在當前視窗載入一個新的網頁。
// location.assign(url);
location.assign('https://codepen.io/');
reload( ) 重新載入頁面
Location.reload( ) 方法可以用來重新整理網頁。
// 語法
location.reload(forcedReload);
//用法
location.reload(true);
參數 forcedReload 是一個布林值 (boolean),如果是 true 用來強制瀏覽器從 server 取得最新的資料;
預設是 false,會優先從瀏覽器暫存檔 (cache) 中取得網頁資料。
location.replace( ) 在當前視窗載入一個新的網頁
location.replace( ) 也是用來在當前視窗載入一個新的網頁,但和 location.assign( ) 的差別在於,
使用此方法當前網頁的瀏覽紀錄 (History) 會被新的網頁取代掉,也就是讓使用者沒辦法按「上一頁」回去。
// 語法
location.replace(url);
//用法
location.replace('https://codepen.io/');