日期:2014-05-16 浏览次数:20370 次
urlEncode : function(o, pre){ var empty, buf = [], e = encodeURIComponent; Ext.iterate(o, function(key, item){ empty = Ext.isEmpty(item); Ext.each(empty ? key : item, function(val){ buf.push('&', e(key), '=', (!Ext.isEmpty(val) && (val != key || !empty)) ? (Ext.isDate(val) ? Ext.encode(val).replace(/"/g, '') : e(val)) : ''); }); }); //如果没有前缀,那么将“&”从数组中弹出 if(!pre){ buf.shift(); pre = ''; } //组合编码后的url串 return pre + buf.join(''); }
urlDecode : function(string, overwrite){ //overwrite属性的作用是如果存在重复的key值是否产生value的覆盖 if(Ext.isEmpty(string)){ return {}; } var obj = {}, pairs = string.split('&'), d = decodeURIComponent, name, value; Ext.each(pairs, function(pair) { pair = pair.split('='); name = d(pair[0]); value = d(pair[1]); obj[name] = overwrite || !obj[name] ? value : [].concat(obj[name]).concat(value); }); return obj; }