欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javascritp添加url参数方法 博客分类: jsjavascript javascripturl参数拼接

程序员文章站 2024-03-23 16:12:16
...

 

 

//将对象参数加入到url中,如果原来url中有则覆盖
function addToUrl(obj){
  var aprotocol = location.protocol;
  var ahost = location.host;
  var apath = location.pathname;
  var asearch = location.search;
  var ahash = location.hash;
  var result = '';
  console.log(obj);
  var joinObj = function(joinObj_obj){
    var result = '';
    for(var i in joinObj_obj){
      result += i + '=' + joinObj_obj[i];
    }
    return result;
  };
  var splitSearchToObj = function(str){
    var resObj = {};
    var arr = str.split('&');
    for(var i = 0; i < arr.length; i++){
      resObj[arr[0]] = arr[1];
    }
    return resObj;
  };
  var existObjKey = function(existObjKey_obj, str){
    for(var i in existObjKey_obj){
      if(i == str){
        return true;
      }
    }
    return false;
  };
  var objExtend = function(obj1, obj2){
    var result = {};
    for(var i in obj1){
      if(existObjKey(obj2, i)){
        result[i] = obj2[i];
      }else{
        result[i] = obj1[i];
      }
    }
  };
  if(asearch == ''){
    console.log(obj);
    result = aprotocol + '//' + ahost + apath + '?' + joinObj(obj) + ahash;
  }else{
    var oldSearchObj = splitSearchToObj(asearch.substr(1));
    result = aprotocol + '//' + ahost + apath + joinObj(objExtend(oldSearchObj, obj)) + ahash;
    
  }
  return result;
}

addToUrl({'kd': 'aaa'});