在前端開發中,我們經常需要獲取當前網頁的url。例如需要將當前網頁的url作為參數傳遞給后臺,或者需要通過獲取當前url中的參數來實現網頁的交互。在JavaScript中實現獲取當前url非常簡單,下面筆者就來詳細介紹一下。
JavaScript中可以通過window.location對象來獲取當前網頁的url。window.location 對象包含了當前網頁的全部信息,包括當前的 URL 地址,主機名和端口號等。下面我們就來看一下window.location對象中包含哪些屬性:
window.location.href //返回當前頁面的url window.location.host //返回當前頁面的域名和端口號 window.location.pathname //返回當前頁面的路徑和文件名 window.location.protocol //返回當前頁面使用的協議
以上四個屬性中,最常用的就是window.location.href,可以直接獲取當前頁面的url。下面我們來看一下通過JavaScript代碼獲取url的具體實現:
const currentUrl = window.location.href; console.log(currentUrl); //輸出當前頁面的url
除了直接獲取當前頁面的url,還有一些常見的需求,例如獲取當前頁面的url參數。例如我們在當前url中添加了一個參數id,則可以通過以下JavaScript代碼獲取到這個參數:
const url = 'http://www.test.com?id=123'; const urlParams = new URLSearchParams(window.location.search); const id = urlParams.get('id'); console.log(id); //輸出:123
以上代碼中,首先我們獲取到了當前的url鏈接,然后使用URLSearchParams對象將url的查詢參數解析成一個Map對象,最后使用get()方法獲取到具體的參數值。
除了上述方法之外,還可以使用正則表達式來實現獲取url參數。例如下面的JavaScript代碼可以實現獲取當前url中的參數:
const url = window.location.href; const reg = new RegExp('(?:\\?|&)id=(.*?)(?:&|$)'); const id = url.match(reg)[1]; console.log(id); //輸出:123
以上代碼中,我們使用正則表達式(?:\\?|&)id=(.*?)(?:&|$)來匹配url中的id參數,然后使用match()方法來獲取匹配的結果。
總而言之,獲取當前網頁的url在前端開發中是非常常見的需求。在JavaScript中可以通過window.location對象來輕松實現,此外還可以通過URLSearchParams對象和正則表達式等方式來實現,具體方法取決于具體的需求。