前端經過url傳參你們必定不陌生 搞個「讀,寫」 操做方法javascript
以前寫過一個版本,在使用過程當中出現了bug ,因而有了這個改進版:html
代碼:前端
//取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」java
//應用 ==========
var data = setUrlK({ =>&name=宋&age=18
name: "宋",
age: '18'
}); json
getUrlK("name"); =>宋編碼