无论是前端开发还是后台设计,很多时候开发人员都需要获取当前或目标网址的相关信息。这个已有现成的内置对象属性可以直接调用了(下面是获取当前页面的参考代码) 
复制代码 代码如下:
 
<script type="text/javascript"> 
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; 
} 
其实这功能在实际应用中很好使,在分页跳转、多条件查询搜索等功能中尤为突出。
您可能感兴趣的文章:
