url参数管理器

来源:互联网 发布:html静态网页源码 编辑:程序博客网 时间:2024/06/05 00:39

目的

动态管理url上的参数,可以给url增加参数或减少参数,也可以给某个参数增加或减少属性

举例

www.a.b.c.htm?attr=1_北京:上海,price_60-100:10-50&sort=collectionCount&sortMode=DESC

API

编号方法使用方法参数使用实例1放入urlmanager.putUrl();  2获取urlmanager.getUrl();  3获取url中的domainmanager.getDomain();  4获取url中的parammanager.getParamOld();  5获取url中的param(进行增加或减少之后)manager.getParam();  6参数进行拆分成mapmanager.getParamMapOld();  7参数进行拆分成map(进行增加或减少之后)manager.getParamMap();  8获取url中某个key的值manager.getOld(k);k:参数manager.getOld("sort");9获取url中某个key的值(进行增加或减少之后)manager.get(k);k:参数manager.get("sort");10获取url中某个参数中某个的值manager.getAttr(attr,k);

attr:参数

k:参数中的键值

manager.getAttr("attr","sort");11往url中加参数manager.add(k,v);

k:参数

v:值

manager.add("attr","price_60-100:200-300");12往url中某个key中放参数manager.addAttr(attr,k,v);

attr:参数

k:键

v:值

manager.addAttr("attr","price","60-100:200-300");13删url中的参数manager.del(k);k:参数manager.del("price");14删url中参数中某个属性manager.delAttr(attr,k);

attr:参数

k:键

manager.delAttr("attr","price");

Jquery代码实例

/** * 参数管理器 * 参数例子:www.a.b.c.htm?attr=1_北京:上海,price_60-100:10-50&sort=collectionCount&sortMode=DESC * @author 蔡龙 * @version 2017-06-06 */(function(){/** * manager命名空间,起隔离作用,防止同名变量冲突 */if(!window.manager) {window.manager={};};/** * 往urlCache临时缓存放入url * 调用示例:manager.putUrl(); */manager.putUrl = function(url){window.manager.urlCache = url;};/** * 获取urlCache临时缓存的url * 调用示例:manager.getUrl(); */manager.getUrl = function(){if(window.manager.urlCache){return window.manager.urlCache;}else{var url = window.location.href;window.manager.urlCache = url;return url;}};/** * 获取url中的domain(从urlCache中的获取的url) * 调用示例:manager.getDomain(); */manager.getDomain = function(){var url = manager.getUrl();var url_arr = url.split("?");var domain = url_arr[0];return domain;};/** * 获取url中的param(从urlCache中的获取的url) * 调用示例:manager.getParam(); */manager.getParam = function(){var url = manager.getUrl();var url_arr = url.split("?");var param = "";if(url_arr.length > 1){param = url_arr[1];}return decodeURIComponent(param);};/** * 获取url中的param * 调用示例:manager.getParamOld(); */manager.getParamOld = function(){var url = window.location.href;var url_arr = url.split("?");var param = "";if(url_arr.length > 1){param = url_arr[1];}return decodeURIComponent(param);};/** * 参数进行拆分成map(从urlCache中的获取的url) * 调用示例:manager.getParamMap(); */manager.getParamMap = function(){var param = manager.getParam();var map = {};if(param == ""){return map;}var params = param.split("&");for (var i = 0; i < params.length; i++) {var paramss = params[i].split("=");var key ="";var value ="";if(paramss.length > 1){key = paramss[0];value = paramss[1];}map[key] = value;}return map;};/** * 参数进行拆分成map * 调用示例:manager.getParamMapOld(); */manager.getParamMapOld = function(){var param = manager.getParamOld();var map = {};if(param == ""){return map;}var params = param.split("&");for (var i = 0; i < params.length; i++) {var paramss = params[i].split("=");var key ="";var value ="";if(paramss.length > 1){key = paramss[0];value = paramss[1];}map[key] = value;}return map;};/** * 获取url中某个参数的值(从urlCache中的获取的url) * 调用示例:manager.get("sort"); */manager.get = function(k){var value = "";var map = manager.getParamMap();if(k == null || k == ""){return value;}if(map[k]){return map[k];}else{return value;}};/** * 获取url中某个参数的值 * 调用示例:manager.getOld("sort"); */manager.getOld = function(k){var value = "";var map = manager.getParamMapOld();if(k == null || k == ""){return value;}if(map[k]){return map[k];}else{return value;}};/** * 获取url中某个参数中某个的值(从urlCache中的获取的url) * 调用示例:manager.getAttr("attr","sort"); */manager.getAttr = function(attr,k){var value = "";var param = manager.get(attr);if(attr == null || attr == "" || k == null || k == "" ){return value;}if(param == null || param == ""){return value;}var params = param.split(",");for (var i = 0; i < params.length; i++) {var paramss = params[i].split("_");if(paramss.length > 1){if(k == paramss[0]){value = paramss[1];break;}}}return value;};/** * 往url中加参数 * 调用示例:manager.add("attr","price_60-100:200-300"); */manager.add = function(k,v){manager.baseAdd(k,v);//manager.baseDel("pageNo");//manager.baseDel("pageSize");};/** * 往url中某个key中放参数 * 调用示例:manager.addAttr("attr","price","60-100:200-300"); */manager.addAttr = function(attr,k,v){manager.baseAddAttr(attr,k,v);};/** * 删url中的参数 * 调用示例:manager.del("price"); */manager.del = function(k){manager.baseDel(k);};/** * 删url中参数中某个属性 * 调用示例:manager.delAttr("attr","price"); */manager.delAttr = function(attr,k){manager.baseDelAttr(attr,k);};/** * 对url进行添加参数 * 调用示例:manager.baseAdd("price","60-100:200-300"); */manager.baseAdd = function(k,v){var domain = manager.getDomain();var param = manager.getParam();var map = manager.getParamMap();var pa = "";if(k == null || k ==""){return;}map[k] = v;//加入新参数,重名参数会被替换for(key in map){  var value = map[key];pa += "&" + key + "=" + value;}var url = domain + "?" + pa.substr(1);manager.putUrl(url);};/** * 对url中的某个参数进行添加属性 * 调用示例:manager.baseAdd("attr","price","60-100:200-300"); */manager.baseAddAttr = function(attr,k,v){var domain = manager.getDomain();var param = manager.getParam();var map = manager.getParamMap();var pa = "";var value = "";var status = true;if(attr == null || attr=="" || k == null || k =="" || v == null || v == ""){return;}if(Object.keys(map).length == 0){pa += "&" + attr + "=" + k + "_" + v;}else{for(key in map){ value = map[key];if(attr == key){var value = map[key];map[key]=value + "," + k + "_" + v;status = false;break;}}if(status){map[attr] = k + "_" + v ;}}for(key in map){  var value = map[key];pa += "&" + key + "=" + value;}var url = domain + "?" + pa.substr(1);manager.putUrl(url);};/** * 对url进行减少参数 * 调用示例:manager.baseAdd("price"); */manager.baseDel = function(k){var domain = manager.getDomain();var param = manager.getParam();var map1 = manager.getParamMap();//旧参数var map2 = {};//新参数var delList = new Array();var pa = "";var url = "";if(k == null || k =="" || param == null || param == "" || Object.keys(map1).length == 0){return;}delList.push(k);for(key in map1){  var value = map1[key];for(var i = 0 ; i < delList.length ; i++){var delk = delList[i];if(delk != key){map2[key] = value;}}}for(key in map2){  var value = map2[key];pa += "&" + key + "=" + value;}if(pa==null || pa==""){url = domain;}else{url = domain + "?" + pa.substr(1);}manager.putUrl(url);};/** * 对url的某个参数进行减少属性 * 调用示例:manager.baseAdd("attr","price"); */manager.baseDelAttr = function(attr,k){var domain = manager.getDomain();var param = manager.getParam();var map1 = manager.getParamMap();//参数var map2 = {};//某个参数属性的mapvar map3 = {};var pa = "";var pa1 = "";var val = manager.get(attr);if(attr == null || attr == "" || k == null || k == "" || param == null || param == "" || Object.keys(map1).length == 0){return domain;}if(val == null  || val == ""){return domain;}var vals = val.split(",");for (var i = 0; i < vals.length; i++) {var valss = vals[i].split("_");if(valss.length > 1){var key = valss[0];var value = valss[1];map2[key] = value;}}for(key in map2){if(k != key){map3[key] = map2[key];}}if(Object.keys(map3).length == 0){manager.del(attr);}else{for(key in map3){pa1 += "," + key + "_" + map3[key];}manager.add(attr,pa1.substr(1));}};//===============测试用例start=============//var a1 = manager.getDomain();////var a2 = manager.getParam();////var a3 = manager.getParamOld();////var a4 = manager.getParamMap();////var a5 = manager.getParamMapOld();////var a6 = manager.get("sort");////var a7 = manager.getOld("sort");////manager.addAttr("attr","2","手机:电脑");//var a7_1 = manager.getUrl();////manager.add("attr","price_60-100:200-300");//var a8 = manager.getUrl();////var a9 = manager.getParam();////var a10 = manager.getParamOld();////var a11 = manager.getParamMap();////var a12 = manager.getParamMapOld();////var a13 = manager.get("attr");////var a14 = manager.getOld("attr");////manager.add("pageNo","1");//var a16 = manager.getUrl();////var a17 = manager.getAttr("attr","price");////manager.addAttr("attr","1","北京:上海");//var a18 = manager.getUrl();////manager.addAttr("attr","商品所在地","Y-1670");//var a18_1 = manager.getUrl();////manager.delAttr("attr","price");//var a19 = manager.getUrl();//==============测试用例end=================})();

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新生儿6天拉肚子怎么办 婴儿眼里有泪水怎么办 十个月宝宝拉肚子怎么办 腹泻十几天了怎么办 新生儿37.3度要怎么办 婴儿发烧37.3度怎么办 小孩子太吵了怎么办 一年级孩子学习差怎么办 马克笔涂错了怎么办 孩子说话不流利怎么办 儿童最近不吃饭怎么办 不爱吃饭偏瘦怎么办 一岁半小宝宝不爱吃饭怎么办 家养的小鸡打架怎么办 小鸡关在一起打架怎么办 小孩感冒出汗多怎么办 宝宝感冒出汗了怎么办 出汗多怎么办%3f 孩子睡觉出汗多怎么办 三年级孩子成绩下滑怎么办 幼儿数学不开窍怎么办 孩子一年级学习跟不上怎么办 孩子学习不认真怎么办 孩子平时不细心怎么办? 脖子出现黑圈怎么办 简历留白太多怎么办 excel数字外面加个圈怎么办 电脑输入法数字数不上怎么办 大班教案迷路了怎么办 迷路了怎么办活动反思 头突然眩晕是怎么办 孩子学习拖拉懒惰怎么办 头发晕想睡觉怎么办 五年级错别字多怎么办 入党志愿书写错字怎么办 高中不会写作文怎么办 考试不会写作文怎么办 高考不会写作文怎么办 孩子总是写错字怎么办 小孩总是写错字怎么办 孩子马虎不认真怎么办