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 相关文章推荐
用js实现的一个Flash滚动轮换显示图片代码生成器
Mar 14 Javascript
Javascript 绘制 sin 曲线过程附图
Aug 21 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
十分钟带你快速了解React16新特性
Nov 10 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
Sep 04 Javascript
vue中axios实现数据交互与跨域问题
May 12 Javascript
微信小程序 组件的外部样式externalClasses使用详解
Sep 06 Javascript
Vue组件跨层级获取组件操作
Jul 27 Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 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中$this-&amp;gt;含义分析
2009/11/29 PHP
PHP $_FILES函数详解
2011/03/09 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
PHP内核探索:变量概述
2014/01/30 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
javascript基本语法分析说明
2008/06/15 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
JavaScript中的值类型详细介绍
2014/12/29 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Django中modelform组件实例用法总结
2020/02/10 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
合作意向书范本
2014/03/31 职场文书
企业2014年度工作总结
2014/12/10 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
死亡赔偿协议书
2015/01/28 职场文书
党员干部学习心得体会
2016/01/23 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang