JS来动态的修改url实现对url的增删查改


Posted in Javascript onSeptember 05, 2014

虽然可以通过get方式提交post表单等方式来动态修改url,但如果多个按钮能并行提交时,写多个大体相同,又有些细节差异的表单,难免有些不妥,因此,想到了通过JS来动态的修改url,来实现对url的增删查改。

<script>

var LG=(function(lg){
var objURL=function(url){
this.ourl=url||window.location.href;
this.href="";//?前面部分
this.params={};//url参数对象
this.jing="";//#及后面部分
this.init();
}
//分析url,得到?前面存入this.href,参数解析为this.params对象,#号及后面存入this.jing
objURL.prototype.init=function(){
var str=this.ourl;
var index=str.indexOf("#");
if(index>0){
this.jing=str.substr(index);
str=str.substring(0,index);
}
index=str.indexOf("?");
if(index>0){
this.href=str.substring(0,index);
str=str.substr(index+1);
var parts=str.split("&");
for(var i=0;i<parts.length;i++){
var kv=parts[i].split("=");
this.params[kv[0]]=kv[1];
}
}
else{
this.href=this.ourl;
this.params={};
}
}
//只是修改this.params
objURL.prototype.set=function(key,val){
this.params[key]=val;
}
//只是设置this.params
objURL.prototype.remove=function(key){
this.params[key]=undefined;
}
//根据三部分组成操作后的url
objURL.prototype.url=function(){
var strurl=this.href;
var objps=[];//这里用数组组织,再做join操作
for(var k in this.params){
if(this.params[k]){
objps.push(k+"="+this.params[k]);
}
}
if(objps.length>0){
strurl+="?"+objps.join("&");
}
if(this.jing.length>0){
strurl+=this.jing;
}
return strurl;
}
//得到参数值
objURL.prototype.get=function(key){
return this.params[key];
} 
lg.URL=objURL;
return lg;
}(LG||{}));


var myurl=new LG.URL(window.location.href);
myurl.remove("b"); //删除了b
alert(myurl.get ("a"));//取参数a的值,这里得到1
myurl.set("a",23); //修改a的值为23
alert (myurl.url());
</script>
Javascript 相关文章推荐
WordPress JQuery处理沙发头像
Jun 22 Javascript
javascript基础知识大集锦(二) 推荐收藏
Jan 13 Javascript
Jquery倒数计时按钮setTimeout的实例代码
Jul 04 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
Aug 05 Javascript
扩展JS Date对象时间格式化功能的小例子
Dec 02 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
JS函数this的用法实例分析
Feb 05 Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
Vue实现开关按钮拖拽效果
Sep 22 Javascript
jQuery表格插件datatables用法总结
Sep 05 #Javascript
jQuery中index()的用法分析
Sep 05 #Javascript
使用jquery解析XML的方法
Sep 05 #Javascript
JavaScript避免内存泄露及内存管理技巧
Sep 05 #Javascript
javascript获取dom的下一个节点方法
Sep 05 #Javascript
原生JavaScript生成GUID的实现示例
Sep 05 #Javascript
javascript动态控制服务器控件实例
Sep 05 #Javascript
You might like
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
php实用代码片段整理
2016/11/12 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
Python实现屏幕截图的两种方式
2018/02/05 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
生物制药毕业生自荐信
2013/10/16 职场文书
电子信息毕业生自荐信
2013/11/16 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
工作失职检讨书范文
2014/01/16 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS