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 面向对象编程基础:封装
Aug 21 Javascript
jquery 可排列的表实现代码
Nov 13 Javascript
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
jQuery hover 延时器实现代码
Mar 12 Javascript
jQuery图片轮播的具体实现
Sep 11 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
js实现跨域的多种方法
Dec 25 Javascript
简单的jQuery banner图片轮播实例代码
Mar 04 Javascript
Angularjs的ng-repeat中去除重复数据的方法
Aug 05 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
Aug 27 Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 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来自动调用不同服务器上的flash
2006/10/09 PHP
html中select语句读取mysql表中内容
2006/10/09 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
python 图片验证码代码
2008/12/07 Python
python使用递归解决全排列数字示例
2014/02/11 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
django+mysql的使用示例
2018/11/23 Python
python实现两个文件夹的同步
2019/08/29 Python
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
ktv好的活动方案
2014/08/15 职场文书
办理护照工作证明
2014/10/10 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
Python实现简单的猜单词
2021/06/15 Python
vue实现锚点定位功能
2021/06/29 Vue.js