無論是前端開發還是後台設計,很多時候開發人員都需要取得目前或目標網址的相關資訊。這個已有現成的內建物件屬性可以直接呼叫了(下面是取得目前頁面的參考程式碼)
但有時候我們需要改變目前網址的參數/參數值,這時候大家會如何處理呢?一般應該都會先透過取得所有參數的信息,然後再根據實際需求來對某一參數進行修改。沒錯!根據這原理,今天就來跟大家分享一下個人在開發中封裝的功能函數。
//=============== 改變網址的參數值================
function ChangeURLParm(Turl,Parm,PValue,ClearParm){
/ 🎜>//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; iif (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 ;iif(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;
}
其實這功能在實際應用上很好使,在分頁跳轉、多條件查詢搜尋等功能中特別突出。