JS自定義功能函數(shù)實(shí)現(xiàn)動(dòng)態(tài)添加網(wǎng)址參數(shù)修改網(wǎng)址參數(shù)值
更新時(shí)間:2013年08月02日 18:33:40 作者:
本文自定義JS功能函數(shù)可動(dòng)態(tài)添加網(wǎng)址參數(shù),修改網(wǎng)址參數(shù)值,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
無論是前端開發(fā)還是后臺(tái)設(shè)計(jì),很多時(shí)候開發(fā)人員都需要獲取當(dāng)前或目標(biāo)網(wǎng)址的相關(guān)信息。這個(gè)已有現(xiàn)成的內(nèi)置對(duì)象屬性可以直接調(diào)用了(下面是獲取當(dāng)前頁面的參考代碼)
<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>
但有時(shí)候我們需要改變目前網(wǎng)址的參數(shù)/參數(shù)值,這時(shí)候大家會(huì)如何處理呢?一般應(yīng)該都會(huì)先通過獲取所有參數(shù)的信息,然后再根據(jù)實(shí)際需求來對(duì)某一參數(shù)進(jìn)行修改。沒錯(cuò)!根據(jù)這一原理,今天就給大家分享一下個(gè)人在開發(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;
}
其實(shí)這功能在實(shí)際應(yīng)用中很好使,在分頁跳轉(zhuǎn)、多條件查詢搜索等功能中尤為突出。
復(fù)制代碼 代碼如下:
<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>
但有時(shí)候我們需要改變目前網(wǎng)址的參數(shù)/參數(shù)值,這時(shí)候大家會(huì)如何處理呢?一般應(yīng)該都會(huì)先通過獲取所有參數(shù)的信息,然后再根據(jù)實(shí)際需求來對(duì)某一參數(shù)進(jìn)行修改。沒錯(cuò)!根據(jù)這一原理,今天就給大家分享一下個(gè)人在開發(fā)中封裝的功能函數(shù)。
//=============== 改變網(wǎng)址的參數(shù)值 ================
復(fù)制代碼 代碼如下:
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;
}
其實(shí)這功能在實(shí)際應(yīng)用中很好使,在分頁跳轉(zhuǎn)、多條件查詢搜索等功能中尤為突出。
您可能感興趣的文章:
- js中對(duì)函數(shù)設(shè)置默認(rèn)參數(shù)值的3種方法
- javascript實(shí)現(xiàn)一個(gè)數(shù)值加法函數(shù)
- js 數(shù)值項(xiàng)目的格式化函數(shù)代碼
- 詳解js中Number()、parseInt()和parseFloat()的區(qū)別
- JavaScript ParseFloat()方法
- javascript的parseFloat()方法精度問題探討
- javascript中的parseInt和parseFloat區(qū)別
- js中parseFloat(參數(shù)1,參數(shù)2)定義和用法及注意事項(xiàng)
- js中string和number類型互轉(zhuǎn)換技巧(分享)
- JavaScript中Number對(duì)象的toFixed() 方法詳解
- 詳解JS轉(zhuǎn)換數(shù)值函數(shù)Number()、parseInt()、parseFloat()
相關(guān)文章
本地圖片預(yù)覽(支持IE6/IE7/IE8/Firefox3)經(jīng)驗(yàn)總結(jié)
遇到的本地圖片預(yù)覽的需求,IE6下可以直接從file的value獲取圖片路徑來顯示預(yù)覽,IE7和IE8下通過select獲取file的圖片路徑,再用濾鏡來顯示預(yù)覽,至于FireFox祥看本文吧,希望可以幫助到你2013-03-03
前端GET/POST請(qǐng)求下載文件多種方式代碼示例
文件都是通過接口獲取的,前端通過調(diào)用接口將接口返回的文件下載,下面這篇文章主要給大家介紹了關(guān)于前端GET/POST請(qǐng)求下載文件的多種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
js 實(shí)現(xiàn)ajax發(fā)送步驟過程詳解
這篇文章主要介紹了js 實(shí)現(xiàn)ajax發(fā)送過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
js form 驗(yàn)證函數(shù) 當(dāng)前比較流行的錯(cuò)誤提示
js數(shù)據(jù)驗(yàn)證、js email驗(yàn)證、js url驗(yàn)證、js長度驗(yàn)證、js數(shù)字驗(yàn)證等2009-06-06
javascript移動(dòng)設(shè)備Web開發(fā)中對(duì)touch事件的封裝實(shí)例
這篇文章主要介紹了javascript移動(dòng)設(shè)備Web開發(fā)中對(duì)touch事件的封裝實(shí)例,分別對(duì)tap事件、doubleTap事件、longTap事件、swipe事件做了封裝,需要的朋友可以參考下2014-06-06

