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插件jbox使用iframe关闭问题
Feb 09 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
Aug 03 Javascript
基于Jquery的跨域传输数据(JSONP)
Mar 10 Javascript
js关闭当前页面(窗口)的几种方式总结
Mar 05 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
Apr 23 Javascript
详解js中==与===的区别
Jan 08 Javascript
jQuery中的一些小技巧
Jan 18 Javascript
利用Ionic2 + angular4实现一个地区选择组件
Jul 27 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
微信小程序收藏功能的实现代码
Jun 12 Javascript
如何使用pm2快速将项目部署到远程服务器
Mar 12 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 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
一个典型的PHP分页实例代码分享
2011/07/28 PHP
解析PHP提交后跳转
2013/06/23 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
JS target与currentTarget区别说明
2011/08/28 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
python BeautifulSoup使用方法详解
2013/11/21 Python
python 统计代码行数简单实例
2017/05/04 Python
python实现K最近邻算法
2018/01/29 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
英国领先的电视购物零售商:Ideal World
2019/03/18 全球购物
生产副总岗位职责
2013/11/28 职场文书
公司活动邀请函
2014/01/24 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
滴水洞导游词
2015/02/10 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
个人售房合同协议书
2016/03/21 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers