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高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
javascript拖拽应用实例
Mar 25 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
Aug 17 Javascript
Javascript 判断两个IP是否在同一网段实例代码
Nov 28 Javascript
JavaScript数组的5种迭代方法
Sep 29 Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
深入浅析javascript函数中with
Oct 28 Javascript
Node.js创建一个Express服务的方法详解
Jan 06 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 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
删除无限级目录与文件代码共享
2006/07/12 PHP
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
php时区转换转换函数
2014/01/07 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
python实现验证码识别功能
2018/06/07 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
python解析xml简单示例
2019/06/21 Python
python使用递归的方式建立二叉树
2019/07/03 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
国贸专业个人求职信分享
2013/12/04 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
Python字符串格式化方式
2022/04/07 Python