使用js獲取url中的參數(shù)并返回一個(gè)對(duì)象方式
js獲取url中的參數(shù)并返回一個(gè)對(duì)象
今天寫(xiě)一個(gè)原生的html需要進(jìn)行url的參數(shù)提取,為了方便以后用到時(shí)直接用將這個(gè)方法記錄在此。
思路
使用window.loaction.href獲取到當(dāng)前頁(yè)面的鏈接,然后對(duì)這個(gè)url字符串進(jìn)行處理。
這些處理的前提是你要了解url,url由協(xié)議、域名、路徑、查詢(xún)字符串等組成。
我們要提取得參數(shù)也就是查詢(xún)字符(qurey)是連接在?后面的鍵值對(duì)且用&符合分割。
我們處理要做的事情就是將這些鍵值對(duì)提取出來(lái)并組裝成對(duì)象。
function getUrlParams(url){ ? const Params = {} ? if(url.indexOf('?')>0){//判斷是否有qurey ? ? let parmas = url.slice(url.indexOf('?')+1)//截取出query ? ? const paramlists = parmas.split('&')//分割鍵值對(duì) ? ? for (const param of paramlists) { ? ? ? let a = param.split('=') ? ? ? Object.assign(Params,{[a[0]]:a[1]})//將鍵值對(duì)封裝成對(duì)象 ? ? } ? } ? return Params }
js解析url中的參數(shù)——返回對(duì)象
需求
在同域的不同前端頁(yè)面跳轉(zhuǎn)或者不同域前端頁(yè)面跳轉(zhuǎn)時(shí),可以通過(guò)參數(shù)傳遞一些數(shù)據(jù),比如下面我們?cè)谀扯人阉?ldquo;location.search”:
- 輸入:一個(gè)包含參數(shù)的URL地址
- 輸出:一個(gè)含有所有參數(shù)的對(duì)象
代碼
目前有兩種解決方案
方案1
const getURLParameters = url => url.match(/([^?=&]+)(=([^&]*))/g) .reduce((a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a), {} );
效果
方案2(更易懂一些)
const parseQueryString = url=>{ var json = {}; var arr = url.substr(url.indexOf('?') + 1).split('&'); arr.forEach(item=>{ var tmp = item.split('='); json[tmp[0]] = tmp[1]; }); return json; }
效果
一點(diǎn)思路
靈活運(yùn)用瀏覽器自帶的location屬性 可以節(jié)省數(shù)據(jù)傳遞的復(fù)雜度
又:一些保密性強(qiáng)的參數(shù),建議使用https域名或者其他加密方式傳遞。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript數(shù)組_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了JavaScript數(shù)組的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06js光標(biāo)定位文本框回車(chē)表單提交問(wèn)題的解決方法
這篇文章主要介紹了js光標(biāo)定位文本框回車(chē)表單提交問(wèn)題的解決方法,涉及javascript阻止瀏覽器默認(rèn)事件的方法,需要的朋友可以參考下2015-05-05前端實(shí)現(xiàn)文本超出指定行數(shù)顯示"展開(kāi)"和"收起"效果詳細(xì)步驟
本文介紹如何使用JavaScript原生代碼實(shí)現(xiàn)文本折疊展開(kāi)效果,并提供方法指導(dǎo)如何在Vue或React等框架中修改實(shí)現(xiàn),詳細(xì)介紹了創(chuàng)建整體框架、設(shè)置樣式及利用JS控制元素的步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10原生javascript實(shí)現(xiàn)圖片彈窗交互效果
這篇文章主要介紹了原生javascript實(shí)現(xiàn)圖片彈窗交互效果的方法及的相關(guān)資料,需要的朋友可以參考下2015-01-01JavaScript引用類(lèi)型Date常見(jiàn)用法實(shí)例分析
這篇文章主要介紹了JavaScript引用類(lèi)型Date常見(jiàn)用法,結(jié)合實(shí)例形式分析了引用類(lèi)型Date基本創(chuàng)建、參數(shù)使用及相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-08-08如何基于viewport vm適配移動(dòng)端頁(yè)面
這篇文章主要介紹了如何基于viewport vm適配移動(dòng)端頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11