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ā)人員都需要獲取當(dāng)前或目標(biāo)網(wǎng)址的相關(guān)信息。這個已有現(xiàn)成的內(nèi)置對象屬性可以直接調(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>
但有時候我們需要改變目前網(wǎng)址的參數(shù)/參數(shù)值,這時候大家會如何處理呢?一般應(yīng)該都會先通過獲取所有參數(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;
}
其實這功能在實際應(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>
但有時候我們需要改變目前網(wǎng)址的參數(shù)/參數(shù)值,這時候大家會如何處理呢?一般應(yīng)該都會先通過獲取所有參數(shù)的信息,然后再根據(jù)實際需求來對某一參數(shù)進行修改。沒錯!根據(jù)這一原理,今天就給大家分享一下個人在開發(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;
}
其實這功能在實際應(yīng)用中很好使,在分頁跳轉(zhuǎn)、多條件查詢搜索等功能中尤為突出。
您可能感興趣的文章:
- js中對函數(shù)設(shè)置默認(rèn)參數(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)文章
javascript實現(xiàn)的一個帶下拉框功能的文本框
這篇文章主要介紹了javascript實現(xiàn)的一個帶下拉框功能的文本框,需要的朋友可以參考下2014-05-05Google的跟蹤代碼 動態(tài)加載js代碼方法應(yīng)用
Google的跟蹤代碼 動態(tài)加載js代碼,需要的朋友可以參考下2012-11-11javascript簡單實現(xiàn)表格行間隔顯示顏色并高亮顯示
表格行間隔顯示顏色并實現(xiàn)高亮顯示,這種效果大家都有見到過吧,下面就為大家詳細(xì)介紹下,需要的朋友可不要錯過2013-11-11uniapp實現(xiàn)h5、app與微信小程序三端pdf文件下載和預(yù)覽功能
作為使用uni-app的小白來說,嘗試了好幾種方法,終于得到了我想要的效果,下面這篇文章主要給大家介紹了關(guān)于uniapp實現(xiàn)h5、app與微信小程序三端pdf文件下載和預(yù)覽功能的相關(guān)資料,需要的朋友可以參考下2022-12-12關(guān)于js中removeEventListener取消事件監(jiān)聽的坑
許多入前端不久的人都會遇到removeEventListener無法清除監(jiān)聽的情況,下面這篇文章主要給大家介紹了關(guān)于js中removeEventListener取消事件監(jiān)聽的坑,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09JavaScript定義函數(shù)_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了JavaScript定義函數(shù)的相關(guān)資料,需要的朋友可以參考下2017-06-06JScript中的undefined和"undefined"的區(qū)別
JScript中的undefined和"undefined"的區(qū)別...2007-03-03JavaScript實現(xiàn)對下拉列表值進行排序的方法
這篇文章主要介紹了JavaScript實現(xiàn)對下拉列表值進行排序的方法,實例分析了javascript對下拉列表元素的遍歷與排序?qū)崿F(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07