url追加参数
onclick='js_aup_more({aaa:"1",bbb:"2"});'/**
- 追加多个地址参数(参数不存在则追加,参数存在则修改)
- 参数params_values {参数名:参数值,参数名:参数值}
@ps 此函数默认使用的url模式为普通模式,在支持pathinfo url地址模式的框架时,请填写上第三个参数'/'
@ps2 2014/5/26 增加有子目录的pathinfo地址的支持(制作英文版可以会用到),第四个参数为子目录,如:"/en"
@例如 js_aup('p','3','/','/en');
*/
function js_aup_more(params_values){
if(!params_values || typeof(params_values)!== "object"){
return false;
}
var delimter = arguments[2] || '&';
var subcatalog = arguments[3] || '';
var just_return = arguments[4] || false;
var location_search = arguments[5] || location.search;
var newurl = '';
if(delimter == '/'){ //pathinfo模式
var query_string = location.pathname.replace(subcatalog,'');
var arr = query_string.split('/');
var paremters_obj = {};
for(var i=4; i<arr.length; i+=2){
paremters_obj[arr[i]] = arr[i+1];
}
for(var key in params_values)
{
if(params_values[key] === null || params_values[key]===''){
delete(paremters_obj[key]);
}else{
paremters_obj[key] = params_values[key];
}
}
for(var key in paremters_obj){
newurl += key + '/' + paremters_obj[key] + '/';
}
newurl = subcatalog + '/' + arr[1] + '/' + arr[2] + '/' + arr[3] + '/' +newurl.substr(0,newurl.length-1);
}else{ //普通模式
var paramters = location_search.getQuery();
if(paramters==false){
var n_url='';
for(var key in params_values)
{
if(params_values[key] !== null && params_values[key]){
n_url +=n_url?'&'+newurl+key+'='+params_values[key]:newurl+key+'='+params_values[key];
}
}
if(n_url){
newurl = '?'+n_url;
}
}else{
for(var key in params_values)
{
if(params_values[key] === null || params_values[key]===''){
delete(paramters[key]);
}else{
paramters[key] = params_values[key];
}
}
for(var key in paramters){
newurl += key + '=' + paramters[key] + '&';
}
newurl = '?' + newurl.substr(0,newurl.length-1);
}
}
if(newurl=='?'){
newurl = document.url || location.href;
newurl = newurl.replace(location.search,'');
}
if(just_return){
return newurl;
}else{
location.href = newurl;
}}