js获取地址栏(或者指定地址)参数

  自己写了个方法,使用原生js获取地址栏(或者指定地址)的参数

getParams(name,url)
1、name,需要获取参数的名称,为空的话,直接返回参数的json对象
2、url , 需要传入的地址,默认为浏览器的地址


/**
 * @function 获取浏览器地址的参数
 * @param {String} [name=''] 获取值的key,默认为空,为空时,函数返回json对象
 * @param {String} [url=window.location.href] 地址,默认为浏览器的url
 * @example  getParams('aa', 'https://www.baidu.com?aa=101')       //101
 */
const getParams = (name = '', url = window.location.href) => {
    let endVal = '';
    if (url.indexOf("?") != -1) {   //判断url中有没有出现?
        let arrs = url.substring(url.indexOf("?") + 1).split('&');  //截取字符串,获取到?后面的那部分内容;以&符号为准,分割成数组
        arrs = arrs.filter(item => item);     //原有数组过滤为空的值
        let obj = {};
        for (let i = 0; i < arrs.length; i++) {
            let index = arrs[i].indexOf("=");
            let keys = arrs[i].substring(0, index);       //第一个等号前面的那部分
            let vals = arrs[i].substring(index + 1);      //第一个等号后面的内容
            if (keys) {     //keys不为空时,追加到obj对象里
                obj[keys] = decodeURI(vals);    //解码输出,值含有中文字符的情况
            }
        }
        if (arrs.length > 0) {  //先判断数组是不是为空,在判断name是不是有值传过来
            if (name) {
                endVal = obj[name] || '';
            } else {
                endVal = obj;
            }
        }
    }
    return endVal;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 JavaScript 中,我们可以使用 `window.location.search` 属性来获取地址中的参数部分。具体的操作步骤如下: 1. 首先,通过 `window.location.search` 属性可以获取到 URL 中的查询参数部分,它包含了以问号 `?` 开头的所有内容。 2. 然后,我们可以使用字符串相关的方法来解析这个查询参数部分,如 `substring()`、`split()` 等。 3. 例如,我们可以使用 `substring(1)` 来去掉地址中的问号 `?`,得到纯粹的查询参数字符串。 4. 接下来,我们可以使用 `split('&')` 方法将查询参数字符串分割为多个参数,返回一个包含所有参数的数组。 5. 然后,我们可以遍历这个数组,使用 `split('=')` 方法将每个参数分割为键和值,返回一个包含键值对的数组。 6. 最后,我们可以根据需要获取指定参数的值,或者将所有参数及其值存储到对象中方便使用。 以下是一个示例代码: ```javascript function getURLParameters() { var parameters = {}; var queryString = window.location.search.substring(1); // 去掉问号 '?' var parameterArray = queryString.split('&'); for (var i = 0; i < parameterArray.length; i++) { var parameter = parameterArray[i].split('='); parameters[decodeURIComponent(parameter[0])] = decodeURIComponent(parameter[1] || ''); } return parameters; } var urlParams = getURLParameters(); console.log(urlParams); // 输出包含所有参数及其值的对象 ``` 通过以上的代码,我们可以获取地址中的参数,并将它们以键值对的形式存储在一个对象中,以便后续的使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值