最近,由于开发的界面需要改造为带参数查询,因此干脆选用前端JavaScript代码进行页面刷新,需要额外处理下参数,然而网上一搜,基本都是替换参数,不包含缺少参数时候的新增参数,于是干脆改造一下,来一个新增替换均支持的版本:(测试方法部分用了jquery,需要自行引用jquery)
<h1>js添加或者编辑url的参数值</h1>
<h5>原始URL:</h5>
<input id="txtURL1" type="text" value="https://www.baidu.com/?param=old&b=2" class="col-10" />
<br />
<h5>原始URL:</h5>
<input id="txtURL2" type="text" class="col-10" />
<br />
<input id="btnAdd" type="button" value="添加参数" class="btn-info" onclick="AddParam();" />
<input id="btnEdit" type="button" value="修改参数" class="btn-info" onclick="EditParam();" />
<script type="text/javascript">
function AddParam() {
var url = $("#txtURL1").val();
var newurl = editParamVal(url, "newparam", "add");
$("#txtURL2").val(newurl);
//window.location.href = url;
}
function EditParam() {
var url = $("#txtURL1").val();
var newurl = editParamVal(url, "param", "new");
$("#txtURL2").val(newurl);
//window.location.href = url;
}
//添加或者编辑url的参数值
function editParamVal(url, paramName, replaceWith) {
var oUrl = url.toString();
if (oUrl.indexOf("?") > 0) {
} else {
oUrl += "?";
}
var param = oUrl.substr(oUrl.indexOf("?"), oUrl.length);
console.log(param);
if (param.indexOf(paramName) < 1) {
oUrl = oUrl + "&" + paramName + "=" + replaceWith;
console.log(oUrl);
}
var re = eval('/(' + paramName + '=)([^&]*)/gi');
var nUrl = oUrl.replace(re, paramName + '=' + replaceWith);
return nUrl;
}
</script>
原文地址:
https://www.opengps.cn/Blog/View.aspx?id=907
文章的更新编辑依此链接为准。欢迎关注源站原创文章!