平常工作中,如果沒有封裝好的框架,獲取url中的請求參數是很麻煩的一件事。下列代碼,解決了“將對象的值拼接到Url”和“從Url獲取參數轉換為對象”兩個問題。
/** * 拼接getUrl * @param url 地址 * @param params 請求參數 */ Layers.prototype.toGetUrl = function (url, params) { var idx = url.indexOf('?'); if (idx < 0) { url = url + '?'; } else if(idx !== url.length - 1){ if (url.charAt(url.length - 1) !== '&') { url = url + '&'; } } for (var key in params) { if (params.hasOwnProperty(key)) { var v = params[key]; if (v !== '') { url += key + '=' + params[key] + '&'; } } } return url; }; /** * 獲取Url中的參數 * @param url 地址 */ Layers.prototype.getUrlParams = function (url) { var res = {}, idx = url.lastIndexOf('?'); if (idx > 0) { var p = url.substring(idx + 1, url.length); var arr = p.split('&'); for (var i = 0; i < arr.length; i++) { var a = arr[i].split('='); if (a.length > 1) { res[a[0]] = decodeURI(a[1]) } } } return res; };