当页面不是表单提交时,给当前页面url添加或者修改参数,可以通过此方式实现页面与页面之间的传参。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>demo</title>
</head>
<body>
<input id="uid" type="text">
<button onclick="changeUrl()">提交url</button>
<script type="text/javascript">
    /*
        changeURLPar()函数参数说明:
            uri:需要改变的链接
            par:需要改变或者曾加的参数名称
            par_value:需要改变或者曾加的参数值

    */
    function changeURLPar(uri, par, par_value) {
        var pattern = par + '=([^&]*)';
        var replaceText = par + '=' + par_value;
        if (uri.match(pattern)) {//如果连接中带这个参数
            var tmp = '/\' + par + '=[^&]*/';
            tmp = uri.replace(eval(tmp), replaceText);
            return (tmp);
        }
        else {
            if (uri.match('[?]')) {//如果链接中不带这个参数但是有其他参数
                return uri + '&' + replaceText;
            }
            else {//如果链接中没有带任何参数
                return uri + '?' + replaceText;
            }
        }
        return uri + '
' + par + '
' + par_value;
    }
    
    function changeUrl(){
        var uid = document.getElementById('uid').value;//从输入框获取uid的值

        var newurl = changeURLPar(window.location.href, 'uid', uid);//将uid和现有的页面地址拼接
    
        window.history.pushState(null,null,newurl);//向当前url添加参数
    }

</script>

</body>
</html>
jjyy 兢兢业业 yyjj
原文地址:https://www.cnblogs.com/ljyyjj/p/13037335.html