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 加号(+)运算符号
Dec 06 Javascript
IE8下关于querySelectorAll()的问题
May 13 Javascript
理解Javascript_02_理解undefined和null
Oct 11 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
js网页右下角提示框实例
Oct 14 Javascript
解决js下referer兼容各大浏览器的方法
Nov 03 Javascript
用原生JS对AJAX做简单封装的实例代码
Jul 13 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
May 17 Javascript
checkbox:click事件触发span元素内容改变的方法
Sep 11 Javascript
JS严格模式原理与用法实例分析
Apr 27 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
Jul 24 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 Vue.js
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 异常处理实现代码
2009/03/10 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
浅谈PHP的反射API
2017/02/26 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python统计cpu利用率的方法
2015/06/02 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
python2.7的编码问题与解决方法
2016/10/04 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
Python猜数字算法题详解
2020/03/01 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
2020/04/26 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
六十岁生日答谢词
2014/01/10 职场文书
银行授权委托书样本
2014/10/13 职场文书
营销计划书
2015/01/17 职场文书
中班上学期个人总结
2015/02/12 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python