JS自定義功能函數(shù)實現(xiàn)動態(tài)添加網(wǎng)址參數(shù)修改網(wǎng)址參數(shù)值
更新時間:2013年08月02日 18:33:40 作者:
本文自定義JS功能函數(shù)可動態(tài)添加網(wǎng)址參數(shù),修改網(wǎng)址參數(shù)值,具體實現(xiàn)如下,感興趣的朋友可以參考下,希望對大家有所幫助
無論是前端開發(fā)還是后臺設(shè)計,很多時候開發(fā)人員都需要獲取當前或目標網(wǎng)址的相關(guān)信息。這個已有現(xiàn)成的內(nèi)置對象屬性可以直接調(diào)用了(下面是獲取當前頁面的參考代碼)
<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>
但有時候我們需要改變目前網(wǎng)址的參數(shù)/參數(shù)值,這時候大家會如何處理呢?一般應該都會先通過獲取所有參數(shù)的信息,然后再根據(jù)實際需求來對某一參數(shù)進行修改。沒錯!根據(jù)這一原理,今天就給大家分享一下個人在開發(fā)中封裝的功能函數(shù)。
//=============== 改變網(wǎng)址的參數(shù)值 ================
function ChangeURLParm(Turl,Parm,PValue,ClearParm){
//Turl: 網(wǎng)址
//Parm: 參數(shù)
//PValue: 參數(shù)值
//ClearParm: 要清除的參數(shù)
var URL,Parms,ParmsArr,IsExist;
var NewURL = Turl;//window.location.href
IsExist = false;
with(Turl){
if(indexOf('?')>0){
URL = substr(0,indexOf('?'));//不包含參數(shù)
Parms = substr(indexOf('?')+1,length);//參數(shù)
}
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()){//原來有參數(shù)Parm則改變其值
ParmsArr[i] = Parm + "=" + PValue;
IsExist = true;
if (String(ClearParm) ==""){
break;
}
}
else if ( (String(ClearParm)!="") && (String(ClearParm).toUpperCase()==String(ParmsArr[i].split("=")[0])).toUpperCase() ){//去掉參數(shù)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;
}
其實這功能在實際應用中很好使,在分頁跳轉(zhuǎn)、多條件查詢搜索等功能中尤為突出。
復制代碼 代碼如下:
<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>
但有時候我們需要改變目前網(wǎng)址的參數(shù)/參數(shù)值,這時候大家會如何處理呢?一般應該都會先通過獲取所有參數(shù)的信息,然后再根據(jù)實際需求來對某一參數(shù)進行修改。沒錯!根據(jù)這一原理,今天就給大家分享一下個人在開發(fā)中封裝的功能函數(shù)。
//=============== 改變網(wǎng)址的參數(shù)值 ================
復制代碼 代碼如下:
function ChangeURLParm(Turl,Parm,PValue,ClearParm){
//Turl: 網(wǎng)址
//Parm: 參數(shù)
//PValue: 參數(shù)值
//ClearParm: 要清除的參數(shù)
var URL,Parms,ParmsArr,IsExist;
var NewURL = Turl;//window.location.href
IsExist = false;
with(Turl){
if(indexOf('?')>0){
URL = substr(0,indexOf('?'));//不包含參數(shù)
Parms = substr(indexOf('?')+1,length);//參數(shù)
}
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()){//原來有參數(shù)Parm則改變其值
ParmsArr[i] = Parm + "=" + PValue;
IsExist = true;
if (String(ClearParm) ==""){
break;
}
}
else if ( (String(ClearParm)!="") && (String(ClearParm).toUpperCase()==String(ParmsArr[i].split("=")[0])).toUpperCase() ){//去掉參數(shù)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;
}
其實這功能在實際應用中很好使,在分頁跳轉(zhuǎn)、多條件查詢搜索等功能中尤為突出。
您可能感興趣的文章:
- js中對函數(shù)設(shè)置默認參數(shù)值的3種方法
- javascript實現(xiàn)一個數(shù)值加法函數(shù)
- js 數(shù)值項目的格式化函數(shù)代碼
- 詳解js中Number()、parseInt()和parseFloat()的區(qū)別
- JavaScript ParseFloat()方法
- javascript的parseFloat()方法精度問題探討
- javascript中的parseInt和parseFloat區(qū)別
- js中parseFloat(參數(shù)1,參數(shù)2)定義和用法及注意事項
- js中string和number類型互轉(zhuǎn)換技巧(分享)
- JavaScript中Number對象的toFixed() 方法詳解
- 詳解JS轉(zhuǎn)換數(shù)值函數(shù)Number()、parseInt()、parseFloat()
相關(guān)文章
本地圖片預覽(支持IE6/IE7/IE8/Firefox3)經(jīng)驗總結(jié)
遇到的本地圖片預覽的需求,IE6下可以直接從file的value獲取圖片路徑來顯示預覽,IE7和IE8下通過select獲取file的圖片路徑,再用濾鏡來顯示預覽,至于FireFox祥看本文吧,希望可以幫助到你2013-03-03
javascript移動設(shè)備Web開發(fā)中對touch事件的封裝實例
這篇文章主要介紹了javascript移動設(shè)備Web開發(fā)中對touch事件的封裝實例,分別對tap事件、doubleTap事件、longTap事件、swipe事件做了封裝,需要的朋友可以參考下2014-06-06

