给链接追加参数

<html>
<head>
	<title>给链接追加参数</title>
	<style>
		span{border:1px solid #ccc;margin:10px;padding:5px;display:block;width:190px;border-radius:5px;}
	</style>
</head>
<body>
	<span onclick="get_current_url('a','你好')">添加值为[你好]的参数[a]</span>
	<span onclick="get_current_url('b',123)">添加值为[123]的参数[b]</span>
	<span onclick="get_current_url('c','hello')">添加值为[hello]的参数[c]</span>
	<span onclick="get_current_url('c','world')">添加值为[world]的参数[c]</span>
</body>
</html>
<script>
	/**
	 * @todo 根据[参数=>值]追加url链接
	 * @param param 参数名
	 * @param value 参数的值
	*/
	function get_current_url(param, value){
		var param_value = "";
		var connector = "";	//参数连接符
		var add_param = param + "=" + value;
		
		var current_href = window.location.href;
		if(current_href.indexOf("?") >= 0 ) { 
			connector = "&";
		}else{
			connector = "?";
		}
		
		if(current_href.indexOf(param) >= 0){	//如果参数存在,就替换此参数
			param_value = get_url_param(param);
			var pre_param = param + "=" + param_value;
			current_href = current_href.replace(pre_param,add_param);
		}else{
			current_href += connector + add_param;
		}
		window.location.href = current_href;
	}

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