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;

}

  方法很简陋,将就着用。还有很多完善的空间。水平有限,只能如此了。

时间: 2024-10-21 20:23:55

Js插件—替换地址栏参数的相关文章

js常用的地址栏参数获取

用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.location.search.substr(1).match(reg);      if(r!=null)ret

JS获取url地址栏参数

window.onload = function(){ //获取url中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null)

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

本文转自:http://www.cnblogs.com/fishtreeyu/archive/2011/02/27/1966178.html 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) ? function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.loca

JS取地址栏参数的两种方法

第一种方法: function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null;} 第二种方法: function getParamValue(

JS如何获取地址栏url后面的参数?

本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:JS如何获取地址栏url后面的参数?: 这里提供了两种获取地址栏url后面参数的方法: 方式1 传参: window.location.href = "/html/bsp/user/userEdit.html?name=四个空格&age=2"; 获取参数: function getParams() { var params = {}; if (this.location.search.indexOf("?

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

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null)return unescape(r[2]); return null; }

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

方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");      var r = window.location.search.substr(1).match(reg);      if(r!=null)return  unescape(r[2]);

JS 采用正则表达式获取地址栏参数

// 采用正则表达式获取地址栏参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }

JS获取地址栏参数的方法

// 用正则表达式获取地址栏参数 function GetQueryString(name) {     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");     var r = window.location.search.substr(1).match(reg);          if(r!=null) {         return  unescape(r[2]);