使用js修改url地址参数

本文介绍如何使用JavaScript动态读取、修改URL中的参数。包括获取URL参数的函数、修改指定参数值的方法以及动态更新URL的技术。适用于前端开发人员优化网页交互体验。

该方法可以修改url的参数。

例如将

  www.baidu.com

修改为

  www.baidu.com?name=123

操作为:

  window.location.href = changeURLArg(window.location.href,'name',123)
function changeURLArg(url,arg,arg_val){
    var pattern=arg+'=([^&]*)';
    var replaceText=arg+'='+arg_val; 
    if(url.match(pattern)){
        var tmp='/('+ arg+'=)([^&]*)/gi';
        tmp=url.replace(eval(tmp),replaceText);
        return tmp;
    }else{ 
        if(url.match('[\?]')){ 
            return url+'&'+replaceText; 
        }else{ 
            return url+'?'+replaceText; 
        } 
    }
}

/**
 * 获取url里的参数
 * @param arg 参数名
 * @returns
 */
function getURLString(arg) { 
	var reg = new RegExp("(^|&)" + arg + "=([^&]*)(&|$)", "i"); 
	var r = window.location.search.substr(1).match(reg); 
	if (r != null) 
		return unescape(r[2]);
	return null; 
} 


//调用结果如下: 
var url = window.location.href; 
changeURLArg(url, "id", 99); // http://www.csdn.com/?id=99&ttt=3 
changeURLArg(url, "haha", 33); // http://www.csdn.com/?id=99&ttt=3&haha=33

读取URL中的参数、修改URL参数、动态修改URL replaceState js代码

1、读取URL中的参数值

/*
*获取URL参数
*/
function GetQueryString(name)
{
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return unescape(r[2]);
    }
    return null;
};

调用方法:

var nameVal=GetQueryString("URL上的参数名");

举例:

浏览器地址连上的地址为:

http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=566&modid=1133&puid=9

那么

var userIdVal=GetQueryString("userId")   //值就等于566

2、修改URL参数

//替换指定传入参数的值,paramName为参数,replaceWith为新值
function replaceParamVal(paramName,replaceWith) {
    var oUrl = this.location.href.toString();
    var re=eval('/('+ paramName+'=)([^&]*)/gi');
    var nUrl = oUrl.replace(re,paramName+'='+replaceWith);
    this.location = nUrl;
window.location.href=nUrl
}

调用举例

浏览器地址连上的地址为:

http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=566&modid=1133&puid=9

加入希望修改userId的值为333,那么

replaceParamVal("userId","333")

URL就会变成

http://www.aazj.cn/pc/meeting/card.html?skinColor=30&gid=-1&userId=333&modid=1133&puid=9

3、动态修改URL

var newUrl="新的Url";
var stateObject = 0;
var title="0"
history.replaceState(stateObject,title,newUrl);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值