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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
在视频前插入广告
Nov 20 Javascript
面向对象的Javascript之三(封装和信息隐藏)
Jan 27 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
JavaScript动态创建form表单并提交的实现方法
Dec 10 Javascript
Angular中$broadcast和$emit的使用方法详解
May 22 Javascript
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
Auto.js自动收取自己和好友蚂蚁森林能量脚本
Jun 28 Javascript
解决vue项目打包后提示图片文件路径错误的问题
Jul 04 Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 Javascript
vue+axios+promise实际开发用法详解
Oct 15 Javascript
js实现移动端轮播图
Dec 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
PHP实现分页的一个示例
2006/10/09 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
JS简单获取日期相差天数的方法
2017/04/24 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
python获取目录下所有文件的方法
2015/06/01 Python
python实现按行切分文本文件的方法
2016/04/18 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
python里运用私有属性和方法总结
2019/07/08 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
公司拓展活动方案
2014/02/13 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
六一活动主持词
2015/06/30 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫