前端js添加修改URL参数的方法,修改地址后,可以不刷新页面,用了那么久,居然又发现了BUG,这下完美了

时间:2025-03-20 09:10:19

2024年12月28日最后更新。

上代码

//URL替换指定传入参数的值,paramName为参数,replaceWith为新值,isRefresh为是否刷新页面,0表示不需要刷新,这个最牛

举例:

/?popenid=757522579

上面这个地址js调用方法:replaceParamVal("popenid","600",0),就会在地址栏上修改参数popenid=600,不会刷新页面,新地址变为:

/?popenid=600
//调用方法:replaceParamVal("puid","600",1),表示在地址栏上修改成正确的参数puid=600,然后刷新页面

//替换指定传入参数的值,paramName为指定参数,replaceWith为新值如果为空就删除此参数,isRefresh为是否刷新新页面1表示是
//调用方法:replaceParamVal("puid","600",0),表示在地址栏上修改成正确的参数puid=600,不刷新页面
//调用方法:replaceParamVal("puid","600",1),表示在地址栏上修改成正确的参数puid=600,然后刷新页面

function replaceParamVal(paramName, replaceWith, isRefresh) {
    //先看看有没有这个参数
    var GetQueryString = null;
    var reg = new RegExp("(^|&)" + paramName + "=([^&]*)(&|$)");
    var rrrr = (1).match(reg);
    if (rrrr != null) {
        GetQueryString = unescape(rrrr[2]);
    }
    var oUrl = ();
    if ((('?' + paramName + '=') > 0)  ) {
        var nUrl = ('?' + paramName + '=' + GetQueryString, '?' +paramName + '=' + replaceWith);
    } else if (('&' + paramName + '=') > 0) {

        var nUrl = ('&' + paramName + '=' + GetQueryString, '&' +paramName + '=' + replaceWith);
    } else {
        if (("?") > 0) {
            var nUrl = oUrl + "&" + paramName + "=" + replaceWith;
        } else {
            var nUrl = oUrl + "?" + paramName + "=" + replaceWith;
        }
    }
    if (isRefresh) {
        = nUrl
    }
    var stateObject = { id: "" };
    var title = "";
    (stateObject, title, nUrl);
}