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 相关文章推荐
Javascript中的常见排序算法
Mar 27 Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
Aug 03 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
Oct 17 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
Jun 09 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
JavaScript进阶练习及简单实例分析
Jun 03 Javascript
JS抛物线动画实例制作
Feb 24 Javascript
vue 做移动端微信公众号采坑经验记录
Apr 26 Javascript
微信小程序城市选择及搜索功能的方法
Mar 22 Javascript
基于javascript实现日历功能原理及代码实例
May 07 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
吃通javascript正则表达式
Apr 21 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
博士208HAF收音机实习报告
2021/03/02 无线电
PHP实现多条件查询实例代码
2010/07/17 PHP
php常用的url处理函数总结
2014/11/19 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Python构建XML树结构的方法示例
2017/06/30 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
初中校园之声广播稿
2014/01/15 职场文书
出生医学证明样本
2014/01/17 职场文书
初中英语教学随笔
2015/08/15 职场文书
入团申请书格式
2019/06/20 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python