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 相关文章推荐
jQuery 改变CSS样式基础代码
Feb 11 Javascript
jquery实现居中弹出层代码
Aug 25 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
Oct 27 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
Oct 15 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
Jan 26 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
Jan 18 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
Apr 21 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
Sep 05 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
微信小程序实现登录注册功能
Dec 29 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
PHP CURL获取返回值的方法
2014/05/04 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
python实现PDF中表格转化为Excel的方法
2020/06/16 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
社区活动邀请函范文
2014/01/29 职场文书
大学生两会精神学习心得体会
2014/03/10 职场文书
大学生就业策划书范文
2014/04/04 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
大学生赌博检讨书
2014/09/22 职场文书
给老师的一封感谢信
2015/01/20 职场文书
工作岗位职责范本
2015/02/15 职场文书
2015中秋祝酒词
2015/08/12 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL