Js替换地址栏参数
开了博客竟然有9个月没在来写过了。真是惭愧。今天需要用到一个用js替换地址栏参数的的功能。就自己用JS自己写了一个简单的函数。贴出来仅供大家参考。代码都写了注释。如下:
/*
js替换URL参数值,无该参数则添加
例:http://www.daoyan.com/aaa.htm?cid=aaa&cname=zhangsan
使用:subUrlParam('cid',"bbb");将返回 http://www.daoyan.com/aaa.htm?cid=bbb&cname=zhangsan
*/ /*
替换地址栏参数值
paramName为参数名
paramValue为参数值
如果有多个参数,则把剩余参数组装成name=value&name1=value1....格式的字符串传入
例如:subUrlParam("cid","bbb","name=zhangsan&age=18")
*/
function subUrlParam(paramName, paramValue) { var result; //返回的新地址 var args; //多个参数
if (arguments.length > 2) args = arguments[2]; var s = window.location.search; //获取传递的参数。如:?cid=bbb&cname=zhangsan
if (s != null && s.length > 1) { var u = s.substr(1); //去掉参数前面的问号
var parr = u.split("&"); //如果地址栏不包含传递的参数,则直接添加该参数
if (u.indexOf(paramName) < 0) {
u += "&" + paramName + "=" + paramValue;
} else {
for (var i = 0; i < parr.length; i++) {
var arr = parr[i].split("="); //分割地址栏参数,cid=aaa //如果当前的参数名和传递的参数名相同,则把当前参数的值替换成传递的值
if (arr[0] == paramName) {
u = u.replace(parr[i], paramName + "=" + paramValue);
break;
}
}
} //遍历传递进来的多个参数集合,并和原来地址栏上的参数集合对比,如果存在该参数则替换其值,不存在则直接添加该参数
if (args != null && args.length > 0) { var aparr = args.split("&");
for (var i = 0; i < aparr.length; i++) { var ishas = false; //是否存在该参数 var ap = aparr[i].split("=");
for (var n = 0; n < parr.length; n++) { var arr = parr[n].split("=");
if (arr[0] == ap[0]) {
ishas = true;
u = u.replace(parr[n], aparr[i]);
break;
}
}
//原来参数集合中不存在该参数则添加
if (!ishas) {
u += "&" + aparr[i];
}
}
}
result = location.pathname + "?" + u; } else {
//地址栏没有参数时,直接添加传递的参数
result = location.href + "?" + paramName + "=" + paramValue;
if (args != null && args.length > 0) {
result += args;
}
}
return result;
}
方法很简陋,将就着用。还有很多完善的空间。欢迎大家拍砖。
Js替换地址栏参数的更多相关文章
- js 读取 地址栏参数 转
用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var re ...
- 【功能代码】---4用JS获取地址栏参数方法
用JS获取地址栏参数方法 // 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...
- (转)用JS获取地址栏参数的方法(超级简单)
转自http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获 ...
- 【JS】---4用JS获取地址栏参数方法
用JS获取地址栏参数方法 // 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...
- JS获取地址栏参数&jquery
第一种:字符串拆分法 window.location.href 或者 location.href 或者 window.location 获得地址栏中的所有内容 decodeURI()可以解码地址栏中的 ...
- 用JS获取地址栏参数的方法
采用正则表达式获取地址栏参数: function GetQueryString(name) { var reg = new RegExp("(^|&)"+ nam ...
- 用JS获取地址栏参数的方法(超级简单)
方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new RegExp("( ...
- JS获取地址栏参数
获取地址栏参数(其中name为你所需要的参数值) function GetQueryString(name) { var reg = new RegExp("(^|&)" ...
- JS 获取 地址栏 参数
法一:正则表达式 /** * 采用正则表达式获取地址栏参数: **/ var GetQueryString = function (name) { var reg = new RegExp(" ...
随机推荐
- gpg: no valid OpenPGP data found
gpg: no valid OpenPGP data found
- bigData Ecosystem Unscramble
主题>>: cloudEra hadoop Ecosystem sim Unscramble; ruiy哥个人理解总结,其实我无非也还是站在那"砖家/叫兽"的肩上瞎扯扯 ...
- 44 个 JavaScript 变态题解析
当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了…. 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧! 第1题 ["1", &qu ...
- nyoj 289 苹果
苹果 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 ctest有n个苹果,要将它放入容量为v的背包.给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值. ...
- 射频识别技术漫谈(11)——Mifare系列卡的共性【worldsing笔记】
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...
- java定时任务接口ScheduledExecutorService
一.ScheduledExecutorService 设计思想 ScheduledExecutorService,是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说 ...
- centos7 挂载ntfs移动硬盘
第一步:下载安装rpmforge ,下载地址 http://pkgs.repoforge.org/rpmforge-release/ 安装 rpm -ivh rpmforge-release-0.5 ...
- Java split用法
Java split用法 java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat ...
- Tricks Device (hdu 5294 最短路+最大流)
Tricks Device Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- POJ_1365_Prime_Land
//懒得解释 #include <iostream> #include <cstring> #include <cmath> #include <cstdio ...