url 取参,json转url参数格式

前端通过url传参大家一定不陌生 搞个“读,写” 操作方法

之前写过一个版本,在使用过程中出现了bug ,于是有了这个改进版:

代码:

//取url参数 getUrlK("name","对象默认为location" )
function getUrlK(key, obj) {
    var oobj = obj || window.location.search;
    var arr1 = [];
    if(oobj){
	    if(/\?/.test(oobj)){
        	arr1 = oobj.toString().split('?');
	    }else{
        	arr1.push(oobj)
	    };
	    for(var i = 1; i < arr1.length; i++) {
	        if(/&/.test(arr1[i])) {
	            var arr2 = arr1[i].split('&');
	            for(var j = 0; j < arr2.length; j++) {
	                if(arr2[j]) {
	                    var arr3 = arr2[j].split('=');
	                    if(arr3[0] == key) {
	                        return decodeURI(arr3[1]);
	                    }
	                }
	            }
	        } else {
	            var arr2 = arr1[i].split('=');
	            if(arr2[0] == key) {
	                return decodeURI(arr2[1]);
	            };
	        };
	    };
    };
};

//json转url参数 setUrlK({name:"a"},true编码)
function setUrlK(ojson) {
    var s='',name, key;
    for(var p in ojson) {
        if(!ojson[p]) {return null;} 
        if(ojson.hasOwnProperty(p)) { name = p };
        key = ojson[p];
        s += "&" + name + "=" + encodeURIComponent(key);
    };
    return s.substring(1,s.length);
};

 

 

“http://192.168.217.1:8020/urljson.html?&name=宋&age=18”

//应用 ==========
var data = setUrlK({  =>&name=宋&age=18
  name: "宋",
  age: '18'
}); 

getUrlK("name");  =>宋

 

posted on 2016-03-10 10:56  songyijian321  阅读(3968)  评论(0编辑  收藏  举报

导航