给链接追加参数
<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>