读取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);

一般这样基本可用了,更多知识可以百度replaceState


你可能感兴趣的:(读取URL中的参数、修改URL参数、动态修改URL replaceState js代码)