关于JavaScript中设置URL参数的说明

/**
* 设置URL参数
* url:要设置参数的URL
* name:参数名
* value:参数值
* return:返回设置参数后的URL
*/
function setUrlParam(url, name, value) {
    // 获取URL地址中参数开始索引
    var index = url.indexOf("?");
    // 判断URL地址中是否有参数
    if (index >= 0) {
        // 获取不带参数的URL地址
        var baseUrl = url.substring(0, index);
        // 获取URL地址中的参数信息
        var paramUrl = url.substring(index);
        // 获取要设置的参数的索引
        index = paramUrl.indexOf("?" + name + "=");
        // 判断要设置的参数是否是第一个参数
        if (index == 0) {
            // 获取要设置的参数后面的参数开始的索引
            index = paramUrl.indexOf("&");
            // 判断后面是否有参数
            if (index >= 0) {
                // 有参数则构造新的URL地址
                return baseUrl + "?" + name + "=" + value + paramUrl.substring(index)
            }
            else {
                // 没参数则构造新的URL地址
                return baseUrl + "?" + name + "=" + value;
            }
        }
        else {
            // 不是第一个参数则获取要设置参数的索引位置
            index = paramUrl.indexOf("&" + name + "=");
            // 判断是否存在要设置的参数
            if (index >= 0) {
                // 获取要设置参数的前面的参数
                var temp1 = paramUrl.substring(0, index);
                // 获取要设置参数的后面的参数
                var temp2 = paramUrl.substring(index + ("&" + name + "=").length);
                // 获取要设置的参数后面的参数开始的索引
                index = temp2.indexOf("&");
                // 判断后面是否有参数
                if (index >= 0) {
                    // 有参数则构造新的URL地址
                    return baseUrl + temp1 + "&" + name + "=" + value + temp2.substring(index);
                }
                else {
                    // 没参数则构造新的URL地址
                    return baseUrl + temp1 + "&" + name + "=" + value;
                }
            }
            else {
                // 不存在参数则构造新的URL地址
                return url + "&" + name + "=" + value;
            }
        }
    }
    else {
        // 原URL地址中没参数则直接构成新的URL地址
        return url + "?" + name + "=" + value;
    }
}

发表回复