欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript三種獲取URL參數(shù)值的方法

 更新時間:2022年09月05日 10:32:51   作者:天行無忌???????  
這篇文章主要介紹了JavaScript三種獲取URL參數(shù)值的方法,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下

前言

在 URL 中,查詢參數(shù)字符串值通常提供有關(guān)請求的信息,例如搜索參數(shù)或正在使用的對象的 ID。如果在前端處理任何業(yè)務(wù)或請求邏輯,了解如何從 URL 中檢索查詢字符串值非常重要。本文分享三種從 URL 獲取參數(shù)的方法。

URLSearchParams

除 IE 11 之外的所有主要瀏覽器版本都支持該 URLSearchParams 接口。它通過解析 URL 的查詢字符串并提供訪問值的方法來工作。

例如:

此接口的缺點之一是您必須僅將 URL 的查詢字符串傳遞給它。如果您正在使用當(dāng)前的瀏覽器 URL,這很容易做到,因為您只需通過 window.location.search。 如果您使用任何其他 URL,則需要單獨解析并傳遞查詢字符串。

const params = new URLSearchParams("q=devpoint&page=1");
params.get("q"); // 'devpoint'
params.get("page"); // '1'

要將查詢參數(shù)解析為對象,請使用 URL.searchParams 的 .entries()方法,該方法返回一個 Iterator key/value 對,并將Object.fromEntries其轉(zhuǎn)換為對象。

const params = new URLSearchParams("q=devpoint&page=1");
const entries = params.entries();
Object.fromEntries(entries); // {q: 'devpoint', page: '1'}

URL

除了 IE 11 之外,所有主要瀏覽器版本也都支持 URL API。它提供了一種更靈活的 URL 解析方式,還提供了一種訪問查詢字符串值的方式。

例如:

const url = new URL("https://stackabuse.com/search?q=devpoint&page=1");
const searchParams = url.searchParams;
searchParams.get("q"); // 'devpoint'
searchParams.get("page"); // '1'

url.searchParams 與 URLSearchParams 返回的實例對象類型相同。

上面的 url 對象也將 URL 的所有部分分解成各個部分。

例如:

url.href; // 'https://stackabuse.com/search?q=devpoint&page=1'
url.origin; // 'https://stackabuse.com'
url.protocol; // 'https:'
url.host; // 'stackabuse.com'
url.hostname; // 'stackabuse.com'
url.port; // ''
url.pathname; // '/search'
url.search; // '?q=devpoint&page=2'
url.hash; // ''

純JS

如果由于某種原因無法訪問上述 API 或希望對解析有更多控制權(quán),可以使用以下代碼將查詢字符串解析為對象。

function getQueryParams(url) {
    const paramArr = url.slice(url.indexOf("?") + 1).split("&");
    const params = {};
    paramArr.map((param) => {
        const [key, val] = param.split("=");
        params[key] = decodeURIComponent(val);
    });
    return params;
}

函數(shù)執(zhí)行后的效果如下:

getQueryParams("https://stackabuse.com/search?q=devpoint&page=2"); // { q: 'devpoint', page: '2' }

到此這篇關(guān)于JavaScript三種獲取URL參數(shù)值的方法的文章就介紹到這了,更多相關(guān)JS獲取URL參數(shù)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用cssText批量修改樣式

    用cssText批量修改樣式

    一般情況下我們用js設(shè)置元素對象的樣式會使用這樣的形式
    2009-08-08
  • js 提取class相同的節(jié)點集合

    js 提取class相同的節(jié)點集合

    可以獲取網(wǎng)頁中相同class的節(jié)點的腳本,然后就可以統(tǒng)一做一些調(diào)整。
    2008-12-12
  • javascript基于prototype實現(xiàn)類似OOP繼承的方法

    javascript基于prototype實現(xiàn)類似OOP繼承的方法

    這篇文章主要介紹了javascript基于prototype實現(xiàn)類似OOP繼承的方法,實例分析了JavaScript使用prototype實現(xiàn)面向?qū)ο蟪绦蛟O(shè)計的中類繼承的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • JavaScript子類用Object.getPrototypeOf去調(diào)用父類方法解析

    JavaScript子類用Object.getPrototypeOf去調(diào)用父類方法解析

    這篇文章主要介紹了JavaScript子類用Object.getPrototypeOf去調(diào)用父類方法。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • Javascript類型系統(tǒng)之undefined和null淺析

    Javascript類型系統(tǒng)之undefined和null淺析

    這篇文章主要介紹了Javascript類型系統(tǒng)之undefined和null的知識,通過本文還簡單給大家介紹了javascript中null和undefined的區(qū)別的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • Echarts之懸浮框中的數(shù)據(jù)排序問題

    Echarts之懸浮框中的數(shù)據(jù)排序問題

    Echarts非常強(qiáng)大,配置也非常的多,有很多細(xì)節(jié)需要深入研究。這篇文章主要介紹了Echarts之懸浮框中的數(shù)據(jù)排序問題,需要的朋友可以參考下
    2018-11-11
  • ES6 Promise對象的應(yīng)用實例分析

    ES6 Promise對象的應(yīng)用實例分析

    這篇文章主要介紹了ES6 Promise對象的應(yīng)用,結(jié)合實例形式分析了Promise對象原理與異步處理相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • layui清空,重置表單數(shù)據(jù)的實例

    layui清空,重置表單數(shù)據(jù)的實例

    今天小編就為大家分享一篇layui清空,重置表單數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • PHP捕捉異常中斷的方法

    PHP捕捉異常中斷的方法

    相信每位PHP程序員都知道,當(dāng)PHP程序出現(xiàn)異常情況,如出現(xiàn)致命錯誤、超時或者不可知的邏輯錯誤導(dǎo)致程序中斷,這個時候就可以用 register_shutdown_function進(jìn)行異常處理。下面本文給出了詳細(xì)的示例代碼,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • 與iframe進(jìn)行跨域交互的解決方案(推薦)

    與iframe進(jìn)行跨域交互的解決方案(推薦)

    這篇文章主要介紹了與iframe進(jìn)行跨域交互的解決方案,本文通過實例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03

最新評論