JS 获取地址栏参数 修改地址栏URL参数 不跳转

1.获取地址栏参数

/********
接收地址栏参数
**********/
function GetQuery(key) {
    var search = location.search.slice(1); //得到get方式提交的查询字符串
    var arr = search.split("&");
    for (var i = 0; i < arr.length; i++) {
        var ar = arr[i].split("=");
        if (ar[0] == key) {
            if (unescape(ar[1]) == 'undefined') {
                return "";
            } else {
                return unescape(ar[1]);
            }
        }
    }
    return "";
}

2.修改地址栏参数

/*
* changeURLStatic 修改地址栏URL参数 不跳转
*   @param name 参数名
*   @param value 参数值
*
* */
function changeURLStatic(name, value) {
    let url = location.href;
    let url2 = "";
    let reg = eval('/([\?|&]' + name + '=)[^&]*/gi');
    value = value.toString().replace(/(^\s*)|(\s*$)/g, "");  //移除首尾空格
    if (!value) {
         url2 = url.replace(reg, '');  //正则替换
    } else {
        if (url.match(reg)) {
             url2 = url.replace(reg, '$1' + value);  //正则替换
        } else {
             url2 = url + (url.indexOf('?') > -1 ? '&' : '?') + name + '=' + value;  //没有参数添加参数
        }
    }
    history.replaceState(null, null, url2);  //替换地址栏
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,可以使用以下代码来修改URL地址参数: ```javascript function changeURLParam(url, paramName, paramValue) { let reg = new RegExp('(\[?&\]' + paramName + '=)\[^&\]*', 'i'); if (url.match(reg)) { return url.replace(reg, '$1' + paramValue); } else { if (url.indexOf('?') === -1) { return url + '?' + paramName + '=' + paramValue; } else { return url + '&' + paramName + '=' + paramValue; } } } let currentURL = window.location.href; let modifiedURL = changeURLParam(currentURL, 'type', 'newValue'); console.log(modifiedURL); ``` 这段代码定义了一个名为`changeURLParam`的函数,它接受三个参数URL地址、要修改参数名和新的参数值。函数会根据参数名在URL中查找对应的参数,并将其值替换为新的参数值。如果URL中不存在该参数,则会在URL末尾添加该参数和对应的值。最后,函数会返回修改后的URL。 你可以将当前页面的URL作为参数传递给`changeURLParam`函数,然后将返回的修改后的URL赋值给`window.location.href`,即可实现修改URL地址参数的功能。 #### 引用[.reference_title] - *1* [使用js修改url地址参数修改url地址](https://blog.csdn.net/shadow_zed/article/details/112802245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [JS 在不跳转情况下修改地址栏URL参数](https://blog.csdn.net/qq_41241504/article/details/126367345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值