/** * 设置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; } }