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


Posted in Javascript onAugust 02, 2013

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

<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; 
}

其实这功能在实际应用中很好使,在分页跳转、多条件查询搜索等功能中尤为突出。
Javascript 相关文章推荐
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
详解JavaScript的Polymer框架中的通知交互
Jul 29 Javascript
jquery简单实现网页层的展开与收缩效果
Aug 07 Javascript
Bootstrap每天必学之缩略图与警示窗
Nov 29 Javascript
用jQuery获取table中行id和td值的实现代码
May 19 Javascript
jQuery中table数据的值拷贝和拆分
Mar 19 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
Sep 18 Javascript
vue中axios的二次封装实例讲解
Oct 14 Javascript
深入理解webpack process.env.NODE_ENV配置
Feb 23 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
js实现简单扫雷
Nov 27 Javascript
Vue Element UI自定义描述列表组件
May 18 Vue.js
jQuery function的正确书写方法
Aug 02 #Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 #Javascript
js 固定悬浮效果实现思路代码
Aug 02 #Javascript
仿新浪微博登陆邮箱提示效果的js代码
Aug 02 #Javascript
页面右下角弹出提示框示例代码js版
Aug 02 #Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 #Javascript
js获取location.href的参数实例代码
Aug 02 #Javascript
You might like
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
js实现删除json中指定的元素
2020/09/22 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
python用来获得图片exif信息的库实例分析
2015/03/16 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
党员公开承诺书
2014/03/25 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
清洁员岗位职责
2015/02/15 职场文书
革命电影观后感
2015/06/18 职场文书
公司管理建议书
2015/09/14 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
virtualenv隔离Python环境的问题解析
2022/06/21 Python