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 相关文章推荐
经验几则 推荐
Sep 05 Javascript
lib.utf.js
Aug 21 Javascript
几个比较实用的JavaScript 测试及效验工具
Apr 18 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
Dec 02 Javascript
jquery.messager.js插件导致页面抖动的解决方法
Jul 14 Javascript
JS选项卡动态替换banner图片路径的方法
May 11 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
微信小程序多列选择器range-key使用详解
Mar 30 Javascript
zTree节点文字过多的处理方法
Nov 24 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
Dec 20 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
Sep 22 Javascript
js实现鼠标切换图片(无定时器)
Jan 27 Javascript
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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
PHP setTime 设置当前时间的代码
2012/08/27 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
javascript简易画板开发
2020/04/12 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
python中实现php的var_dump函数功能
2015/01/21 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
Python中base64与xml取值结合问题
2019/12/22 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
2015年企业团支部工作总结
2015/05/21 职场文书