You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
3.8 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*本系列框架中,一些用得上的小功能函数,一些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'
}
},
*/