/*本系列框架中,一些用得上的小功能函数,一些UI必须使用到它们,用户也可以单独拿出来用*/ //获取一个DIV的绝对坐标的功能函数,即使是非绝对定位,一样能获取到 function getElCoordinate(dom) { var t = dom.offsetTop; var l = dom.offsetLeft; dom=dom.offsetParent; while (dom) { t += dom.offsetTop; l += dom.offsetLeft; dom=dom.offsetParent; }; return { top: t, left: l }; } //兼容各种浏览器的,获取鼠标真实位置 function mousePosition(ev){ if(!ev) ev=window.event; if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } return { x:ev.clientX + document.documentElement.scrollLeft - document.body.clientLeft, y:ev.clientY + document.documentElement.scrollTop - document.body.clientTop }; } //给DATE类添加一个格式化输出字串的方法 Date.prototype.format = function(format) { var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+" : this.getHours(), //hour "m+" : this.getMinutes(), //minute "s+" : this.getSeconds(), //second ‘ //quarter "q+" : Math.floor((this.getMonth()+3)/3), "S" : this.getMilliseconds() //millisecond } if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length)); for(var k in o)if(new RegExp("("+ k +")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length)); return format; } //JS]根据格式字符串分析日期(MM与自动匹配两位的09和一位的9) //alert(getDateFromFormat(sDate,sFormat)); function getDateFromFormat(dateString,formatString){ var regDate = /\d+/g; var regFormat = /[YyMmdHhSs]+/g; var dateMatches = dateString.match(regDate); var formatmatches = formatString.match(regFormat); var date = new Date(); for(var i=0;i<dateMatches.length;i++){ switch(formatmatches[i].substring(0,1)){ case 'Y': case 'y': date.setFullYear(parseInt(dateMatches[i]));break; case 'M': date.setMonth(parseInt(dateMatches[i])-1);break; case 'd': date.setDate(parseInt(dateMatches[i]));break; case 'H': case 'h': date.setHours(parseInt(dateMatches[i]));break; case 'm': date.setMinutes(parseInt(dateMatches[i]));break; case 's': date.setSeconds(parseInt(dateMatches[i]));break; } } return date; } //货币分析成浮点数 //alert(parseCurrency("¥1,900,000.12")); function parseCurrency(currentString){ var regParser = /[\d\.]+/g; var matches = currentString.match(regParser); var result = ''; var dot = false; for(var i=0;i<matches.length;i++){ var temp = matches[i]; if(temp =='.'){ if(dot) continue; } result += temp; } return parseFloat(result); } //将#XXXXXX颜色格式转换为RGB格式,并附加上透明度 function brgba(hex, opacity) { if( ! /#?\d+/g.test(hex) ) return hex; //如果是“red”格式的颜色值,则不转换。//正则错误,参考后面的PS内容 var h = hex.charAt(0) == "#" ? hex.substring(1) : hex, r = parseInt(h.substring(0,2),16), g = parseInt(h.substring(2,4),16), b = parseInt(h.substring(4,6),16), a = opacity; return "rgba(" + r + "," + g + "," + b + "," + a + ")"; } /* * AMD模块中,载入器里的配置: * exports 可以把某个非requirejs方式的代码中的某一个全局变量暴露出去,当作该模块以引用 paths: { 'jquery': '/js/lib/jquery/jquery.min', 'gooflow': '/js/lib/jquery/jquery.min', }, shim: { 'gooflow': { deps: ['/js/lib/ueditor/ueditor.config.js', 'css!/js/lib/ueditor/themes/default/css/ueditor'] exports: 'GooFlow' } }, */