MyUtilCreator //工具类生成器var MyUtilCreator = {create: function(){var util = {};util.ajax = function(url, data, callback, tip, async){console.info("request__"+data);if(tip){console.info("正在"+tip+"...");}async = "boolean"==typeof
//工具类生成器 var MyUtilCreator = { create: function(){ var util = {}; util.ajax = function(url, data, callback, tip, async){ console.info("request__"+data); if(tip){console.info("正在"+tip+"...");} async = "boolean"==typeof(async) ? async : true; //默认异步加载 $.ajax({ url: url, type: "post", data: data, async: async, cache: false, dataType: "json", /* xhr: function(){ //初始化XMLHttpRequest var xhr; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } alert(xhr); xhr.open("post", url, true); return xhr; },*/ success: function(ret, status, xhr){ console.info("response__"+JSON.stringify(ret)); if(ret){ if(callback && (Object.prototype.toString.call(callback)==='[object Function]')){ callback(ret); } }else if(tip){ console.info(tip+"失败"); } }, error: function(xhr, errorType, error){ if(tip){ console.info(tip+"失败,请检查网络是否异常"); } }/*, //安卓微信下报错, shit! beforeSend(xhr, settings){ if(tip){ console.info("正在"+tip+"..."); } }*/ }); } util.setStorage = function(name, value){ if(!name || !value) return false; localStorage.setItem(name, JSON.stringify(value)); } util.getStorage = function(name){ if(!name) return null; var value = localStorage.getItem(name); if(value){ try{ return JSON.parse(value); }catch(e){ return value; } } } util.rmStorage = function(name){ if(!name) return false; localStorage.removeItem(name); } util.setCookie = function(name, value, days, path){ if(!name || !value) return false; if(!days) days=1; if(!path) path="/"; var d = new Date(); d.setTime(d.getTime() + days*24*3600*1000); document.cookie = name + "=" + JSON.stringify(value) + "; expires=" + d.toUTCString() + "; path="+path; } util.getCookie = function(name){ if(!name) return null; var arr = document.cookie.split("; "); for(var i = 0; i < arr.length; i++){ var temp = arr[i].split("="); if(temp[0] == name){ try{ return JSON.parse(temp[1]); }catch(e){ return temp[1]; } } } return ""; } util.rmCookie = function(name, path){ if(!name) return false; if(!path) path="/"; var d = new Date(); d.setTime(d.getTime() - 10000); var val = JSON.stringify(this.getCookie(name)); document.cookie = name + "="+val+"; expires=" + d.toUTCString() + "; path="+path; } //判断微信浏览器 util.isWx = function(){ var ua = navigator.userAgent.toLowerCase(); return ua.match(/MicroMessenger/i)=="micromessenger"; } util.isIos = function(){ var ua = navigator.userAgent; return !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); } //日期格式化 util.formatDate = function(fmt, date){ if(!fmt) return ""; if(!date) date = new Date(); var o = { "M+": date.getMonth() + 1, //月份 "d+": date.getDate(), //日 "h+": date.getHours(), //小时 "m+": date.getMinutes(), //分 "s+": date.getSeconds(), //秒 "q+": Math.floor((date.getMonth() + 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } function Rad(d){ return d * Math.PI / 180.0;//经纬度转换成三角函数中度分表形式。 } //计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度 util.getDistance = function(lat1,lng1,lat2,lng2){ var radLat1 = Rad(lat1); var radLat2 = Rad(lat2); var a = radLat1 - radLat2; var b = Rad(lng1) - Rad(lng2); var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2))); s = s *6378.137 ;// EARTH_RADIUS; s = Math.round(s * 10000) / 10000; //输出为公里 s=s.toFixed(2); return s; } //仿表单请求 util.postForm = function(url, obj){ var form = document.createElement("form"); form.action = url; form.method = "post"; form.style.display = "none"; for (var x in obj) { var opt = document.createElement("input"); opt.name = x; opt.value = obj[x]; form.appendChild(opt); } document.body.appendChild(form); form.submit(); return form; } // 是否为数组对象 util.isArray = function(obj) { return Object.prototype.toString.call(obj)==='[object Array]'; } // 将对象转换成url参数格式 a=123&b=456 util.toUrlParas = function(obj){ if(!obj) return ""; if("string" == typeof(obj)){ return obj; } var paraStr = ""; var isFirst = true; for(var x in obj){ if(util.isArray(obj[x])){ for(i in obj[x]) { if(!isFirst){ paraStr += "&"; }else{ isFirst = false; } paraStr += x+"="+obj[x][i]; } }else{ if(!isFirst){ paraStr += "&"; }else{ isFirst = false; } paraStr += x+"="+obj[x]; } } return paraStr; } return util; } }; //表单直接序列化为json $.fn.serializeObj = function(){ var o = {}; var a = this.serializeArray(); $.each(a, function(){ if(o[this.name]){ if (!o[this.name].push){ o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); }else{ o[this.name] = this.value || ''; } }); return o; };