开了博客竟然有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替换地址栏参数的更多相关文章

  1. js 读取 地址栏参数 转

    用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)   function GetQueryString(name) {      var re ...

  2. 【功能代码】---4用JS获取地址栏参数方法

    用JS获取地址栏参数方法 // 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...

  3. (转)用JS获取地址栏参数的方法(超级简单)

    转自http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获 ...

  4. 【JS】---4用JS获取地址栏参数方法

    用JS获取地址栏参数方法 // 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...

  5. JS获取地址栏参数&jquery

    第一种:字符串拆分法 window.location.href 或者 location.href 或者 window.location 获得地址栏中的所有内容 decodeURI()可以解码地址栏中的 ...

  6. 用JS获取地址栏参数的方法

    采用正则表达式获取地址栏参数: function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ nam ...

  7. 用JS获取地址栏参数的方法(超级简单)

    方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("( ...

  8. JS获取地址栏参数

    获取地址栏参数(其中name为你所需要的参数值) function GetQueryString(name) { var reg = new RegExp("(^|&)" ...

  9. JS 获取 地址栏 参数

    法一:正则表达式 /** * 采用正则表达式获取地址栏参数: **/ var GetQueryString = function (name) { var reg = new RegExp(" ...

随机推荐

  1. POJ 3648-Wedding(2-SAT)

    题面很邪恶啊... 一对新人请n-1对夫妻吃饭,人们坐在一张桌子的两侧,每一对互为夫妻关系的人必须坐在桌子的两侧.而且有些人两两之间会存在“通奸”关系,通奸关系不仅在男女之间,同性之间也有.新娘对面不 ...

  2. jQuery-menu-aim有時候不能觸發BUG解決辦法

    在使用jQuery-menu-aim菜單時有時候鼠標移上去會發現樣式有改變但是第二階菜單卻沒有出現的問題 解決辦法:在exitMenu的方法中加入return true; 如下所示: exitMenu ...

  3. hdu 1034 Candy Sharing Game

    Candy Sharing Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  4. hdoj 2023 求平均成绩

    求平均成绩 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  5. Bugs及解决方案列表

    Bugs及解决方案列表(以下实例默认运行环境都为Standard mode): 如何在IE6及更早浏览器中定义小高度的容器? 方法: #test{overflow:hidden;height:1px; ...

  6. Winform- DotNetBar for Windows Forms的安装的添加

    Winform界面不好看,偶尔在网上看到winform的界面美化,对比了一下选择了DotNetBar for Windows Forms 1.破解版网上很多,提供一个参考的下载地址http://dx. ...

  7. js-弹出一个新窗口 新窗口自动转接到一个页面然后自动关闭

    这个问题.好. 在百度问问找到的:他的做法是打开一个后通过实例对象,再进行一将跳转,最后再将JS里定时将实例对象关闭... 这个问题其实不需要两个页面,只要三行JS代码就能实现,除非你在2.php里面 ...

  8. Java向PostgreSQL发送prepared statement 与 libpq 向PostgreSQL发送prepared statement之比较:

    Java 代码,在数据库端,并没有当成 prepared statetment 被处理. C代码通过libpq 访问数据库端,被当成了 prepared statement 处理.也许是因Postgr ...

  9. iOS UITabBarItem 选中图的颜色,设置UIimage的渲染模式

    UITbarController之前有在这篇文章讲解:http://www.cnblogs.com/niit-soft-518/p/4447940.html 如果自定义了UITabBarItem的图片 ...

  10. [置顶] Java编程笔试题之一 ----文件操作

    题目:给定一个文件和一个字符串,判断文件是否包含该字符串,如果包含,请打印出包含该字符串的行号以及该行的全部内容. 思路: ①使用缓冲流(BufferedReader)读取文件,定义初始行号为0.   ...