JS动态添加与修改网址参数值的方法

发布时间:2020-04-01编辑:脚本学堂
本文介绍下,用js实现动态添加与修改网址参数及值的具体方法,有需要的朋友参考下。

获取当前或目标网址的相关信息,可以使用javasscript的内置对象属性。
例如:

<script type="text/javascript">
//取得当前或目标网址的相关内容
//by www.jb200.com
thisURL = document.URL;
thisHREF = document.location.href;
thisSLoc = self.location.href;
thisDLoc = document.location;
strwrite = " thisURL: [" + thisURL + "]<br>"
strwrite += " thisHREF: [" + thisHREF + "]<br>"
strwrite += " thisSLoc: [" + thisSLoc + "]<br>"
strwrite += " thisDLoc: [" + thisDLoc + "]<br>"
document.write( strwrite );
</script>

有时需要改变目前网址的参数/参数值。
可以先通过获取所有参数的信息,然后再根据实际需求来对某一参数进行修改。
例如:

//改变网址的参数值
function ChangeURLParm(Turl,Parm,PValue,ClearParm){
//Turl: 网址
//Parm: 参数
//PValue: 参数值
//ClearParm: 要清除的参数
var URL,Parms,ParmsArr,IsExist;
var NewURL = Turl;//window.location.href
IsExist = false;
with(Turl){
if(indexOf('?')>0){
URL = substr(0,indexOf('?'));//不包含参数
Parms = substr(indexOf('?')+1,length);//参数
}
else{
URL = Turl;
Parms = '';
}
}
if (Parms!=''){
var i;
ParmsArr = Parms.split("&");
for(i=0;i<=ParmsArr.length-1;i++){
if (String(Parm).toUpperCase()==String(ParmsArr[i].split("=")[0]).toUpperCase()){//原来有参数Parm则改变其值
ParmsArr[i] = Parm + "=" + PValue;
IsExist = true;
if (String(ClearParm) ==""){
break;
}
}
else if ( (String(ClearParm)!="") && (String(ClearParm).toUpperCase()==String(ParmsArr[i].split("=")[0])).toUpperCase() ){//去掉参数ClearParm的值
ParmsArr[i] = ClearParm + "=";
}
}

for(i=0;i<=ParmsArr.length-1;i++){
if(i==0){
Parms = ParmsArr[i];
}
else{
Parms = Parms + "&" + ParmsArr[i];
}
}
NewURL = URL + "?" + Parms;
if (!IsExist){
NewURL = NewURL + "&" + Parm + "=" + PValue;
}
}
else{
NewURL = URL + "?" + Parm + "=" + PValue;
}
return NewURL;
}

此方法多用于:分页跳转、多条件查询搜索等功能,非常好用。