JS动态添加网址参数,修改网址参数值的自定义功能函数

来源:互联网 发布:淘宝16年处罚规定 编辑:程序博客网 时间:2024/06/08 03:13

无论是前端开发还是后台设计,很多时候开发人员都需要获取当前或目标网址的相关信息。这个已有现成的内置对象属性可以直接调用了(下面是获取当前页面的参考代码)——

 

<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;
}
其实这功能在实际应用中很好使,在分页跳转、多条件查询搜索等功能中尤为突出。(详细可参考原载)