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对象是否可用的最正确方法分析
Oct 03 Javascript
js call方法详细介绍(js 的继承)
Nov 18 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
JS实现超简单的鼠标拖动效果
Nov 02 Javascript
JS简单实现点击复制链接的方法
Aug 03 Javascript
Javascript中this绑定的3种方法与比较
Oct 13 Javascript
用headjs来管理和加载js 提高网站加载速度
Nov 29 Javascript
Array数组对象中的forEach、map、filter及reduce详析
Aug 02 Javascript
解决Angular2 router.navigate刷新页面的问题
Aug 31 Javascript
vue-cli3 DllPlugin 提取公用库的方法
Apr 24 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
Jun 10 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 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
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
2009/01/30 Javascript
jQuery 性能优化手册 推荐
2010/02/23 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
JS实现复制功能
2017/03/01 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python3 元组tuple入门基础
2020/02/09 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
什么是GWT的Module
2013/01/20 面试题
高中化学教学反思
2014/01/13 职场文书
酒店员工检讨书
2014/02/18 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
幼儿园安全责任书
2014/04/14 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
任命书模板
2014/06/04 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
大学生暑期实践报告
2015/07/13 职场文书
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python