页面基本结构,保障产品组件正常显示
<!DOCTYPE html> <html class="over_hidden h100b"> <head> <title></title> </head> <body class="over_hidden h100b"> </body> </html>
"over_hidden h100b"
是实现界面高度自适应的基础样式。
seeyon/ ├── common/ │ ├── all-min.css /*公用样式包*/ │ └── js/ │ ├── v3x-debug.js /*v3x依赖js*/ │ └── ui/ /*组件js*/ │ ├── seeyon.ui.layout-debug.js │ ├── seeyon.ui.grid-debug.js │ └── ... │── skin/ │ ├── dist/ /*生产环境使用的css文件*/ │ │ └── common │ │ └── skin.css /*默认皮肤*/ │ │ └── components │ │ └── components_layout.css /*组件的布局css*/ │ │ └── components_theme_default.css /*组件的皮肤css*/ │ │ └── images │ │ └── skin.css /*图标、图片等*/ │ │ └── modules │ │ └── skin.css /*业务模块,如文化建设的css*/ │ ├── src/ /*scss源文件*/ │ │ └── common /*公用样式scss源文件目录*/ │ │ └── components /*组件样式scss源文件目录*/ │ │ └── modules /*业务模块样式scss源文件目录*/ └── main/ │ ├── login/ /*【登陆页皮肤】*/ │ │ ├── default/ /*默认皮肤*/ │ ├── frames/ │ │ └── desktop /*工作桌面-公用样式及图片,供VJOIN使用*/ │ └── skin/ │ ├── frame /*【首页框架皮肤】*/ │ │ ├── default /*默认),供VJOIN使用*/ │ └── desktop /*【工作桌面皮肤】*/ │ ├── harmony /*和谐之美(默认),供VJOIN使用*/ └── portal/ /*7.0门户*/ └── images/ /*图片*/ └── icons/ /*图标/* │ ├── default │ ├── fonts │ │ └──line /*线型图标*/ │ │ └──plane /*面型图标*/ └── pagelayout/ │ ├── element /*PC端门户主框架元素*/ │ ├── element_mobile /*移动端门户主框架元素*/*/ │ ├── layout /*PC端门户模板布局*/ │ ├── layout_mobile /*移动端门户模板布局*/ │ ├── skin /*PC端门户主框架元素的皮肤*/ │ ├── skin_mobile /*移动端门户主框架元素的皮肤*/*/ └── sections/ │ ├── component /*PC端栏目需要的组件*/ │ ├── skin /*PC端栏目样式*/ │ ├── tpl /*PC端栏目模板*/ └── ├── tpl_mobile /*移动端栏目模板*/
seeyon/ ├── common/ │ ├── all-min.css /*公用样式包*/ │ └── js/ │ ├── v3x-debug.js /*v3x依赖js*/ │ └── ui/ /*组件js*/ │ ├── seeyon.ui.layout-debug.js │ ├── seeyon.ui.grid-debug.js │ └── ... │── skin/ │ ├── default/ /*默认皮肤*/ │ │ └── skin.css │ └── GOV_red/ /*政务皮肤*/ │ └── skin.css └── main/ ├── login/ /*【登陆页皮肤】*/ │ ├── default/ /*A8*/ │ ├── default-A6/ /*A6*/ │ ├── default-A6s/ /*A6s*/ │ ├── default-A6-U8/ /*A6-U8*/ │ ├── default-A8s-U8/ /*A8s-U8*/ │ ├── default-G6/ /*政务*/ │ └── scroll/ /*多图*/ ├── frames/ │ ├── defaultV51 │ │ └── index.css /*首页框架-公用样式*/ │ └── desktop │ └── index.css /*工作桌面-公用样式*/ └── skin/ ├── frame /*【首页框架皮肤】*/ │ ├── harmony /*和谐之美(默认)*/ │ ├── peaceful /*宁静之韵*/ │ ├── wisdom /*智慧之美*/ │ ├── GOV_red /*政务-红*/ │ └── GOV_blue /*政务-蓝*/ └── desktop /*【工作桌面皮肤】*/ ├── harmony /*和谐之美(默认)*/ ├── peaceful /*宁静之韵*/ ├── wisdom /*智慧之美*/ ├── GOV_red /*政务-红*/ └── GOV_blue /*政务-蓝*/
seeyon/ └── common/ ├── skin/ │ ├── default/ │ │ ├── skin.css /*默认样式*/ │ │ └── images │ │ └── xmenu │ │ └── toolbar.trip.png /*toolbar定位图片*/ │ └── GOV_red/ │ └── skin.css /*政务样式*/ └── js/ └── V3X.js /*组件js*/
IE8+、Chrome、Firefox、360、Safari。
IE9+、Chrome、Firefox、360、Safari。低版本浏览器抛弃圆角、过度动画等效果。部分页面在IE11下采用降级到IE9显示处理方式。
javascript模块化的第一条规则:一个模块不应该为全局名字空间添加多于一条的标记.通俗的讲:除了给全局命名空间定义一个模块的命名空间,其它的你一句代码都不要写
1.防止全局变量被覆盖
2.减少全局变量个数
//js文件名和命名空间名保持一致 //全局变量和函数保存在命名空间中 //Collaboration.js var Collaboration; if(!Collaboration) Collaboration = {};//第一级域名 Collaboration.xxx = xxx;//变量 Collaboration.函数名1=function(){ //函数 } //--------------------------------------------------------------------------------------- //如果js文件名相同,则需要将不同的js放到不同的目录,则需要定义多级 var com; if(!com) com={};//如果com不存在,则新生成一个 else if(typeof com!="object"){//如果已存在,但不是一个对象,则抛出一个异常 throw new Error("com already exists and is not an object"); } if(!com.util) com.util={};//如果com.util不存在则新生成一个 else if(typeof com.util!="object"){//如果com存在,但不是一个对象,则抛出一个异常 throw new Error("com.util already exists and is not an object"); } if(!com.util.Collaboration){//如果com.util.ModuleClass存在,则直接抛出异常 throw new Error("com.util.Collaboration already exists"); } com.util.Collaboration = {//在com.util.Collaboration不存在的情况下,我们才能正常使用在此命名空间下定义的代码 函数1:function(){ 函数体;}, 函数2:function(){ 函数体;} };
符合 web 标准, 语义化 html, 结构表现行为分离, 兼容性优良. 页面性能方面, 代码要求简洁明了有序, 尽可能的减小服务器负载, 保证最快的解析速度。
驼峰式命名法:是指混合使用大小写字母来构成单词的名称(适用于两个不同的单词链接如:rightContent)[用于js中]
下划线命名法:两个单词间用”_”相连,如 menu_title(适用于上下级关系,可以准确表示两个单词间的层级关系。)[用于css或js中]
Html、css、js、images 文件命名:单个单词采用全英文小写,多个单词采用驼峰式命名。
声明类型统一<!DOCTYPE html> ,新开发框架在html上方引入common.jsp
标签和属性一律小写,属性值用双引号包括
给区块代码加上注释, 方便后台添加功能
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/WEB-INF/jsp/common/common.jsp"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>title</title> </head> <body> <div id="layout" class="comp" comp="type:'layout'"> <div class="layout_north bg_color" id="north"> <%-- 如果是业务生成器创建的一个列表菜单,则不显示面包屑 --%> <c:if test="${param.srcFrom ne 'bizconfig' }"> <div class="comp" comp="type:'breadcrumb',comptype:'location',code:'F01_listDone'"></div> </c:if> <div id="toolbars"></div> </div> <div class="layout_center over_hidden" id="center"> </div> </div> </body> </html>
在变量定义的上一行用双斜杠(//)注释,注释单占一行
在方法头部详细说明该方法的功能,以及所传参数的意义
js书写规范参考java规范注意换行和分号
建议采用严格模式
"use strict"; //显示部门,默认是 var displayDepartment = true; //显示组,默认是 var displayTeam = true; //显示职务,默认否 var displayOtype = false; /** * 普通选人的对话框1 * 参数分别为 相对根目录路径,初始化要显示的人员,是否多选 * @param path1 路径 * @param initPerson1 初始化显示人员 * @param mutiple1 是否多选 */ function selectPerson1(path1,initPerson1,mutiple1){ path = path1; initPerson = initPerson1; mutiple = mutiple1; return showSimpleDialog(); }
将para对象的属性复制到tpl对象中 但如果是数组属性则不进行复制
/** * 将para对象的属性复制到tpl对象中 但如果是数组属性则不进行复制 * @param tpl 目标对象 * @param para 被复制的对象 * @returns {*} */ $.extendParam = function(tpl, para) { for ( var v in para) { //如果是数组属性则不进行复制操作 if (!(para[v] instanceof Array)) { tpl[v] = para[v]; } } return tpl; };调用列子
var par = { contextPath : _ctxPath, render : this[0].id }; //类似jQuery的extend方法 这里是浅复制 如果是数组对象不进行copy操作 par = $.extendParam(par, options);
缓存控件对象
//全局对象 缓存控件对象 var attrObjs = []; $.fn.attrObj = function(name, value) { var obj; //循环attrObjs 对象集合 从中获取当前元素对象 如果查找到则终止循环 for ( var i = 0; i < attrObjs.length; i++) { if (attrObjs[i].o == this[0]) { obj = attrObjs[i]; break; } } //如果从缓存对象集合中未找到该对象 则将对象保存到缓存中 if (!obj) { obj = new Object(); obj.o = this[0]; obj.v = new Object(); attrObjs.push(obj); } //将传入的对象跟名称进行保存 if (value) { obj.v[name] = value; } else { return obj.v[name]; } };调用列子
//初始化工具栏 $.fn.toolbar = function(options) { var par = { contextPath : _ctxPath, render : this[0].id }; //类似jQuery的extend方法 这里是浅复制 如果是数组对象不进行copy操作 par = $.extendParam(par, options); //调用该方法来创建工具栏对象 var myBar = new WebFXMenuBar(par), toolbarOpt = options.toolbar; this.attrObj("toolbarObj", myBar); 。。。。。 }
判断一个日期是否在当前日期之前
调用列子
判断是否为合法的日期字符串
参数名称 | 参数类型 | 是否必输 | 说明 |
szDate | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'作为分隔符 |
isSave | boolean | 必输 | isSave为true时合法日期保存到当前日期对象 |
Date.prototype.getWeekStart=function(dateStr) { this.isDate(dateStr,true); .... }源代码
//功能:判断是否为合法的日期字符串 //参数:必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'作为分隔符 // isSave为true时合法日期保存到当前日期对象 Date.prototype.isDate=function(szDate,isSave) { var re,regu; var splitChar,Year,Month,Day; var szArry; var strObj=new String(szDate); if(strObj.length<8 || strObj.length>10) return false;//判断日期的长度,完整的年,长短日期格式 regu="^([0-9]){4}(-|/)([0-9]){1,2}(-|/)([0-9]){1,2}$";//日期模板校验(以‘-’或者‘/’分割的日期) re=new RegExp(regu); if(strObj.search(re)==-1) return false; splitChar=strObj.charAt(4);//年必须输入四位数字 szArry=strObj.split(splitChar); if(szArry.length!=3) return false; Year=parseInt(szArry[0],10); Month=parseInt(szArry[1],10); Day=parseInt(szArry[2],10); if(Year<1900 || Year>2500) return false; if(Month<1 || Month>12) return false;//月必须在1--12之间 if(Day<1 || Day>31) return false;//日必须在1-31之间 switch(Month) { case 4: case 6: case 9: case 11: if(Day>30) return false; break; case 2: if((Year%4==0 && Year%100!=0) || Year%400==0)//润年2月份29天 { if(Day>29) return false; } else { if(Day>28) return false; } break; default: break; } if(isSave) { /** * 设值顺序改为:先设定日、再设定月、再设定年,避免出现如下Bug: * 日期变量2010-01-30调用此方法,参数为('2010-02-01', true)后日期变量会变为2010-03-01(应该为2010-02-01) * 因为先设定月,再设定日,此时该值为2010-02-30,超出2月天数,此时系统自动将其月份改为3月 */ this.setDate(Day); this.setMonth(Month-1); this.setYear(Year); } return true; }
将日期字符串转换成日期对象,但该方法并没有Date.parseDate方法强大,parseDate是简单封装和转换,而Date.parseDate是calendar-debug.js提供,该方法可以指定字符串的格式进行转换。
参数名称 | 参数类型 | 是否必输 | 说明 |
dateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'分隔符 |
var dateStr="2017-10-16"; var dateObj=parseDate(dateStr);源代码
function parseDate(dateStr){ var ds = dateStr.split("-"); var y = parseInt(ds[0], 10); var m = parseInt(ds[1], 10) - 1; var d = parseInt(ds[2], 10); return new Date(y, m, d); }
对日期格式进行格式化 将2017-9-1格式的转换成2017-09-01格式
参数名称 | 参数类型 | 是否必输 | 说明 |
dateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'分隔符 |
var dateStr="2017-2-1"; var dateObj=formatDate(dateStr);源代码
function formatDate(dateStr){ var d = dateStr.split("-"); var month = parseInt(d[1], 10); var date = parseInt(d[2], 10); return d[0] + "-" + (month < 10 ? "0" + month : month) + "-" + (date < 10 ? "0" + date : date); }
得到输入日期前几天或者后几天的日期。
参数名称 | 参数类型 | 是否必输 | 说明 |
curDateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'分隔符 |
iPassNum | int | 必输 | 正、负数字 |
var curDate=new Date(); var backDate=curDate.dateAdd("2017-10-19",1); var backDateStr=formatDate(backDate); alert(backDateStr);//输出时间为2017-10-20源代码
Date.prototype.dateAdd=function(curDateStr,iPassNum) { var dateObj; var sNewDate=curDateStr; var y,m,d; var sDate; var bUpChange=false; var splitChar; var szArry; var strObj; if(this.isDate(curDateStr,true)==false) { //alert("当前日期错误!"); return curDateStr; } strObj=new String(curDateStr); splitChar=strObj.charAt(4);//年必须输入四位数字 szArry=strObj.split(splitChar); y=parseInt(szArry[0],10); m=parseInt(szArry[1],10); d=parseInt(szArry[2],10); while(iPassNum!=0) { //设置日期 if(iPassNum>0) d++; else d--; if(d<=0 || d>31) { bUpChange=true; if(d<=0) d=31; else d=1; } else { bUpChange=false; } //设置月 if(bUpChange) { if(iPassNum>0) m++; else m--; if(m<=0 || m>12) { bUpChange=true; if(m<=0) m=12; else m=1; } else { bUpChange=false; } } //设置年 if(bUpChange) { if(iPassNum>0) y++; else y--; } sNewDate=y+"-"+m+"-"+d; if(this.isDate(sNewDate,false)) { if(iPassNum>0) iPassNum--; else iPassNum++; } } return sNewDate; }
得到输入日期所在的星期的开始日期(星期天)。
参数名称 | 参数类型 | 是否必输 | 说明 |
curDateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'分隔符 |
var curDate=new Date(); var backDate=curDate.getWeekStart("2017-10-19"); var backDateStr=formatDate(backDate); alert(backDateStr);源代码
//功能:得到输入日期所在的星期的开始日期(星期日) Date.prototype.getWeekStart=function(dateStr) { this.isDate(dateStr,true); var iWeek=this.getDay(); //一周的第一天这里定为周日 var iPassNum=iWeek; if(iPassNum!=0) iPassNum=-iPassNum; return formatDate(this.dateAdd(dateStr,iPassNum)); }
得到输入日期所在的星期的结束日期(星期六)。
参数名称 | 参数类型 | 是否必输 | 说明 |
curDateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'分隔符 |
var curDate=new Date(); var backDate=curDate.getWeekEnd("2017-10-19"); var backDateStr=formatDate(backDate); alert(backDateStr);源代码
//功能:得到输入日期所在的星期的结束日期(星期六) Date.prototype.getWeekEnd=function(dateStr) { this.isDate(dateStr,true); var iWeek=this.getDay(); //一周的第一天这里定为周日 var iPassNum=iWeek; if(iPassNum!=0) iPassNum=-iPassNum; return formatDate(this.dateAdd(dateStr,iPassNum)); }
得到输入日期所在的月份的开始日期。
参数名称 | 参数类型 | 是否必输 | 说明 |
curDateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'分隔符 |
var curDate=new Date(); var backDate=curDate.getMonthStart("2017-10-19"); var backDateStr=formatDate(backDate); alert(backDateStr);//输出时间为2017-10-1源代码
//功能:得到输入日期所在的月份的开始日期 Date.prototype.getMonthStart=function(dateStr) { this.isDate(dateStr,true); dateStr=this.getFullYear()+"-"+(this.getMonth()+1)+"-1"; return formatDate(dateStr); }
得到输入日期所在的月份的结束日期。
参数名称 | 参数类型 | 是否必输 | 说明 |
curDateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'分隔符 |
var curDate=new Date(); var backDate=curDate.getMonthStart("2017-10-19"); var backDateStr=formatDate(backDate); alert(backDateStr);//输出时间为2017-10-31源代码
//功能:得到输入日期所在的月份的结束日期 Date.prototype.getMonthEnd=function(dateStr) { this.isDate(dateStr,true); var months=[31,28,31,30,31,30,31,31,30,31,30,31]; //this.isDate(dateStr,true); var iYear=this.getFullYear(); var iMonth=this.getMonth()+1; var iDay=months[this.getMonth()]; if(iYear%4==0 && iMonth==2){ iDay++; } dateStr=iYear+"-"+iMonth+"-"+iDay; return formatDate(dateStr); }
得到输入日期所在的季度的开始日期。
参数名称 | 参数类型 | 是否必输 | 说明 |
curDateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'分隔符 |
var curDate=new Date(); var backDate=curDate.getSeasonStart("2017-10-19"); var backDateStr=formatDate(backDate); alert(backDateStr);源代码
//功能:得到输入日期所在的季度的开始日期和结束日期 Date.prototype.getSeasonStart=function(dateStr) { var a=[1,1,1,4,4,4,7,7,7,10,10,10]; this.isDate(dateStr,true); dateStr=this.getFullYear()+"-"+a[this.getMonth()]+"-1"; return formatDate(dateStr); }
得到输入日期所在的季度的结束日期。
参数名称 | 参数类型 | 是否必输 | 说明 |
curDateStr | str | 必输 | 必须是年月日格式,年要求四位,月日可以是长类型或者短类型,必须以'-'或者'/'分隔符 |
var curDate=new Date(); var backDate=curDate.getSeasonEnd("2017-10-19"); var backDateStr=formatDate(backDate); alert(backDateStr);源代码
//功能:得到输入日期所在的季度的开始日期和结束日期 Date.prototype.getSeasonEnd=function(dateStr) { this.isDate(dateStr,true); var a=[3,3,3,6,6,6,9,9,9,12,12,12]; var m=[31,31,31,30,30,30,30,30,30,31,31,31]; this.isDate(dateStr,true); dateStr=this.getFullYear()+"-"+a[this.getMonth()]+"-"+m[this.getMonth()]; return formatDate(dateStr); }
得到这个月的第几周。
var curDate=new Date(); var weekNum=curDate.getWeekOfMonth(); alert(weekNum);源代码
//得到这个月的第几周 Date.prototype.getWeekOfMonth = function(){ var w = this.getDay(); var d = this.getDate(); return Math.ceil((d + 6 - w)/7 ); }
日期格式化。
var curDate=new Date(); var dateStr=curDate.pattern('yyyy-MM-dd'); alert(dateStr);源代码
Date.prototype.format = function(pattern) { var hour = this.getHours(); var o = { "M+" : this.getMonth() + 1, //month "d+" : this.getDate(), //day "H+" : hour, //hour "h+" : (hour > 12 ? hour - 12 : hour), //hour "m+" : this.getMinutes(), //minute "s+" : this.getSeconds(), //second "q+" : Math.floor((this.getMonth()+3)/3), //quarter "S" : this.getMilliseconds() //millisecond } if(/(y+)/.test(pattern)){ pattern = pattern.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } for(var k in o)if(new RegExp("("+ k +")").test(pattern)){ pattern = pattern.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); } return pattern; }
数组中查找相应元素的位置。
var arry=[1,2,3,4,5]; var ind=arry.indexOf(3); //输出ind 为 2源代码
Array.prototype.indexOf = function(object){ for(var i = 0; i < this.length; i++) { if(this[i] == object){ return i; } } return -1; }
可以理解为目标数据去继承某个数组,其实就是将参数数组的值都放到目标数组中。
var arry=[1,2,3,4,5]; var arry2=arry.extend([5,6,7,8,9]);源代码
Array.prototype.extend = function(C){ for (var B = 0, A = C.length; B < A; B++) { this.push(C[B]); } return this; }
判断数组中是否包含指定元素。
var arry=[1,2,3,4,5]; var back=arry.contains(2);源代码
Array.prototype.contains = function(object){ for(var i = 0; i < this.length; i++) { if(this[i] == object){ return true; } } return false; }
获取当前字符串占用的字节长度。
var arry="中文"; var back=arry.getBytesLength();//输出是4 汉字是占用2个字节源代码
String.prototype.getBytesLength = function() { var cArr = this.match(/[^\x00-\xff]/ig); return this.length + (cArr == null ? 0 : cArr.length); };
根据指定的长度来获取字符串,如果字符串比指定长则截取并在后面追加相应的指定字符,如果字符串长度小于指定长度则直接返回。注意这里是根据字节长度来计算的
参数名称 | 参数类型 | 是否必输 | 说明 |
maxlengh | int | 必输 | 指定的长度 |
symbol | str | 非必输,默认值.. | 如果输入了symbol则字符串超长时拼接该字符串,如果没有输入symbol则用..来代替 |
var str="这是个比较长的字符串。"; var back=str.getLimitLength(str,3);//这...源代码
String.prototype.getLimitLength = function(maxlengh, symbol) { if(!maxlengh || maxlengh < 0){ return this; } var len = this.getBytesLength(); if(len <= maxlengh){ return this; } symbol = symbol == null ? ".." : symbol; maxlengh = maxlengh - symbol.length; var a = 0; var temp = ''; for (var i = 0; i < this.length; i++) { if (this.charCodeAt(i) > 255) a += 2; else a++; temp += this.charAt(i); if(a >= maxlengh) { return temp + symbol; } } return this; };
对许多html标签字符串进行转义
参数名称 | 参数类型 | 是否必输 | 说明 |
isEscapeSpace | int | 非必输 默认值false | 如果为true则转义的同时 过滤掉相应的空格 |
isEscapeBr | str | 非必输, 默认值false | 如果为true则转义的同时 过滤掉相应的换行\n |
var str=" 。"; var arry2=str.escapeHTML(); alert(arry2)源代码
String.prototype.getLimitLength = function(maxlengh, symbol) { if(!maxlengh || maxlengh < 0){ return this; } var len = this.getBytesLength(); if(len <= maxlengh){ return this; } symbol = symbol == null ? ".." : symbol; maxlengh = maxlengh - symbol.length; var a = 0; var temp = ''; for (var i = 0; i < this.length; i++) { if (this.charCodeAt(i) > 255) a += 2; else a++; temp += this.charAt(i); if(a >= maxlengh) { return temp + symbol; } } return this; };
判断字符串是否由指定字符串开头。
var arry="中文"; var back=arry.startsWith("中");//输出是true源代码
String.prototype.startsWith = function(prefix){ return this.indexOf(prefix) == 0; };
判断字符串是否由指定字符串结尾。
var arry="中文"; var back=arry.endsWith("文");//输出是true源代码
String.prototype.endsWith = function(subfix){ var pos = this.indexOf(subfix); return pos > -1 && pos == this.length - subfix.length; };
将字符串中的空格用 来代替。
var str=" 中文 "; var back=str.escapeSpace();源代码
String.prototype.escapeSpace = function(){ return this.replace(/ /g, " "); };
将字符串中的空格用  来代替。
var str=" 中文 "; var back=str.escapeSameWidthSpace();源代码
String.prototype.escapeSameWidthSpace = function(){ return this.replace(/ /g, " "); };
替换字符串中的单引号和双引号。
var str=" '中文' "; var back=str.escapeQuot();源代码
String.prototype.escapeQuot = function(){ return this.replace(/\'/g,"'").replace(/"/g,"""); };
去掉字符串前后的空格。
var str=" '中文' "; var back=str.trim();源代码
/** * 去掉空格 */ String.prototype.trim = function(){ var chs = this.toCharArray(); var st = 0; var off = chs.length; for(var i = 0; i < chs.length; i++){ var c = chs[i]; if(c == ' '){ st++; } else{ break; } } if(st == this.length){ return ""; } for(var i = chs.length; i > 0; i--){ var c = chs[i-1]; if(c == ' '){ off--; } else{ break; } } return this.substring(st, off); };
格式化url字符串,会替换其中的换行符并将特殊字符进行转义。
var str=" '中文' "; var back=str.trim();源代码
String.prototype.escapeUrl = function(isEscapeSpace){ try { return escapeStringToHTML(this.replace(/\n/g, ''), isEscapeSpace); } catch (e) { } return this; };
将字符串转成数组。
var str="中文"; var back=str.toCharArray();源代码
/** * 将字符串转成数组 */ String.prototype.toCharArray = function(){ var array = []; for(var i = 0; i < this.length; i++){ array[i] = this.charAt(i); } return array; };
返回arrayList对象元素的数量。
var newAry=new ArrayList(); newAry.add("123"); alert(newAry.size());源代码
ArrayList.prototype.size = function(){ return this.instance.length; }
向arrayList对象中添加元素。
var newAry=new ArrayList(); newAry.add("123"); alert(newAry.size());源代码
/** * 在末尾追加一个 */ ArrayList.prototype.add = function(o){ this.instance[this.instance.length] = o; }
向arrayList对象中添加元素,如果该元素已经存在则添加不进去。
var newAry=new ArrayList(); newAry.addSingle("123"); newAry.addSingle("123"); alert(newAry.size());//这里长度还是1,因为第二次添加将被忽略源代码
/** * 当list中不存在该对象时才添加 */ ArrayList.prototype.addSingle = function(o){ if(!this.contains(o)){ this.instance[this.instance.length] = o; } }
在指定位置增加元素。
var newAry=new ArrayList(); newAry.addSingle("123"); newAry.addAt(1,"1234");源代码
/** * 在指定位置增加元素 * @param posation 位置, 从0开始 * @param o 要增加的元素 */ ArrayList.prototype.addAt = function(position, o){ if(position >= this.size() || position < 0 || this.isEmpty()){ this.add(o); return; } this.instance.splice(position, 0, o); }
传入一个数组,将数组的所有元素加入到ArrayList对象中。
var newAry=new ArrayList(); newAry.addAll(['a','b','c']);源代码
ArrayList.prototype.addAll = function(array){ if(!array || array.length < 1){ return; } this.instance = this.instance.concat(array); }
传入一个ArrayList,将ArrayList的所有元素加入到目标ArrayList对象中。
var newAry=new ArrayList(); newAry.addAll(['a','b','c']); var newAryTwo=new ArrayList(); newAryTwo.addList(newAry);源代码
/** * 追加一个List在队尾 */ ArrayList.prototype.addList = function(list){ if(list && list instanceof ArrayList && !list.isEmpty()){ this.instance = this.instance.concat(list.instance); } }
根据指定的位置获取对应的对象。
var newAry=new ArrayList(); newAry.addAll(['a','b','c']); newAry.get(1);源代码
ArrayList.prototype.get = function(index){ if(this.isEmpty()){ return null; } if(index > this.size()){ return null; } return this.instance[index]; }
获取最后一个元素。
var newAry=new ArrayList(); newAry.addAll(['a','b','c']); newAry.getLast();源代码
/** * 最后一个 */ ArrayList.prototype.getLast = function(){ if(this.size() < 1){ return null; } return this.instance[this.size() - 1]; }
在指定位置插入相应的值,注意传入的index是已经存在元素的位置,也就是要通过add添加了元素的,可以理解set是进行元素修改操作的
var newAry=new ArrayList(); newAry.add(2); newAry.set(2,'123'); newAry.getLast();源代码
ArrayList.prototype.set = function(index, obj){ if(index >= this.size()){ throw "IndexOutOfBoundException : Index " + index + ", Size "+this.size(); } var oldValue = this.instance[index]; this.instance[index] = obj; return oldValue; }
根据指定位置删除相应的元素
var newAry=new ArrayList(); newAry.add('123'); newAry.removeElementAt(0); alert(newAry.size());源代码
ArrayList.prototype.set = function(index, obj){ if(index >= this.size()){ throw "IndexOutOfBoundException : Index " + index + ", Size "+this.size(); } var oldValue = this.instance[index]; this.instance[index] = obj; return oldValue; }
根据元素对象删除相应的元素
var newAry=new ArrayList(); newAry.add('123'); newAry.remove('123'); alert(newAry.size());源代码
/** * Removes the element in this list. */ ArrayList.prototype.remove = function(o){ var index = this.indexOf(o); this.removeElementAt(index); }
判断ArrayList中是否包含该元素对象,如果存放的元素是对象,可以指定其中的某个属性来判断是否存在
var newAry=new ArrayList(); newAry.add('123'); alert(newAry.contains('123')); newAry.add({userId:'test',name:'zhangsan'}); alert(newAry.contains({userId:'test',name:'zhangsan'},'userId'));源代码
ArrayList.prototype.contains = function(o, comparatorProperies){ return this.indexOf(o, comparatorProperies) > -1; }
获取指定元素在arryList对象里的具体位置,如果存放的元素是对象,可以指定其中的某个属性来判断,从前往后找
var newAry=new ArrayList(); newAry.add('123'); alert(newAry.indexOf('123')); newAry.add({userId:'test',name:'zhangsan'}); alert(newAry.indexOf({userId:'test',name:'zhangsan'},'userId'));源代码
ArrayList.prototype.indexOf = function(o, comparatorProperies){ for(var i = 0; i < this.size(); i++){ var s = this.instance[i]; if(s == o){ return i; } else if(comparatorProperies != null && s != null && o != null && s[comparatorProperies] == o[comparatorProperies]){ return i; } } return -1; }
获取指定元素在arryList对象里的具体位置,如果存放的元素是对象,可以指定其中的某个属性来判断,从后往前找
var newAry=new ArrayList(); newAry.add('123'); alert(newAry.lastIndexOf('123')); newAry.add({userId:'test',name:'zhangsan'}); alert(newAry.lastIndexOf({userId:'test',name:'zhangsan'},'userId'));源代码
ArrayList.prototype.lastIndexOf = function(o, comparatorProperies){ for(var i = this.size() - 1; i >= 0; i--){ var s = this.instance[i]; if(s == o){ return i; } else if(comparatorProperies != null && s != null && o != null && s[comparatorProperies] == o[comparatorProperies]){ return i; } } return -1; }
根据指定的起始位置,和结束位置,截取list中的部分返回
var newAry=new ArrayList(); newAry.addAll([1,2,3,4,5]); var subList=newAry.subList(0,2);源代码
ArrayList.prototype.subList = function(fromIndex, toIndex){ if(fromIndex < 0){ fromIndex = 0; } if(toIndex > this.size()){ toIndex = this.size(); } var tempArray = this.instance.slice(fromIndex, toIndex); var temp = new ArrayList(); temp.addAll(tempArray); return temp; }
将ArrayList转换成数组Array
var newAry=new ArrayList(); newAry.addAll([1,2,3,4,5]); var subList=newAry.toArray();源代码
ArrayList.prototype.toArray = function(){ return this.instance; }
判断当前ArrayList是否为空
var newAry=new ArrayList(); newAry.addAll([1,2,3,4,5]); newAry.isEmpty();源代码
ArrayList.prototype.isEmpty = function(){ return this.size() == 0; }
清空ArrayList对象
var newAry=new ArrayList(); newAry.addAll([1,2,3,4,5]); newAry.clear();源代码
ArrayList.prototype.clear = function(){ this.instance = new Array(); }
将ArrayList对象中的值根据指定连接符连接成字符串返回
var newAry=new ArrayList(); newAry.addAll([1,2,3,4,5]); newAry.toString(";");源代码
ArrayList.prototype.toString = function(sep){ sep = sep || ", "; return this.instance.join(sep); }
想StringBuffer对象中拼接字符串
var buffer=new StringBuffer(); buffer.append("test1");newAry.append("test2"); buffer.toString();源代码
StringBuffer.prototype.append = function(str){ if(str){ if(str instanceof Array){ this._strings_ = this._strings_.concat(str); } else{ this._strings_[this._strings_.length] = str; } } return this; }
将StringBuffer对象置空,并将新传入的字符串赋值给该对象
var buffer=new StringBuffer(); buffer.append("test1");newAry.append("test2"); buffer.reset("test3");源代码
StringBuffer.prototype.reset = function(newStr){ this.clear(); this.append(newStr); }
将StringBuffer对象置空
var buffer=new StringBuffer(); buffer.append("test1");newAry.append("test2"); buffer.clear();源代码
StringBuffer.prototype.clear = function(){ this._strings_ = new Array(); }
判断StringBuffer对象是否为空
var buffer=new StringBuffer(); buffer.append("test1");newAry.append("test2"); buffer.isBlank();//false源代码
StringBuffer.prototype.isBlank = function(){ return this._strings_.length == 0; }
将StringBuffer对象中的值根据指定连接符,连接成字符串返回
var buffer=new StringBuffer(); buffer.append("test1");newAry.append("test2"); buffer.toString();源代码
StringBuffer.prototype.toString = function(sp){ sp = sp == null ? "" : sp; if (this._strings_.length == 0) return ""; return this._strings_.join(sp); }
想set对象中插入值,可以单个插入也可以多个插入
var set=new Set(); set.add("test1");newAry.add("test2"); set.add(5, 6, 7, 8, 9); set.toString();源代码
Set.prototype.add = function(){ if(arguments == null || arguments.length < 1){ throw "arguments is null"; } for(var i = 0; i < arguments.length; i++) { var a = arguments[i]; if(!this.contains(a)){ //存在 this.instance[this.size()] = a; this.key[a] = "A8"; //随便给个值 } } }
获取set对象中元素的个数
var set=new Set(); set.add("test1");newAry.add("test2"); set.add(5, 6, 7, 8, 9); set.size();源代码
Set.prototype.size = function(){ return this.instance.length; }
判断set对象是否存在指定元素
var set=new Set(); set.add("test1");newAry.add("test2"); set.add(5, 6, 7, 8, 9); set.contains(5);源代码
Set.prototype.contains = function(o){ return this.key[o] != null; }
判断set对象是否为空,如果为空则返回true,否则返回false
var set=new Set(); set.add("test1");newAry.add("test2"); set.add(5, 6, 7, 8, 9); set.isEmpty();源代码
Set.prototype.isEmpty = function(){ return this.size() == 0; }
将当前set对象清空
var set=new Set(); set.add("test1");newAry.add("test2"); set.add(5, 6, 7, 8, 9); set.clear();源代码
Set.prototype.clear = function(){ this.instance = new Array(); this.key = { } }
根据当前元素的序号获取其值
var set=new Set(); set.add("test1");newAry.add("test2"); set.add(5, 6, 7, 8, 9); set.get(0);源代码
Set.prototype.get = function(index){ if(this.isEmpty()){ return null; } if(index > this.size()){ return null; } return this.instance[index]; }
将set对象转换成一个数组返回
var set=new Set(); set.add("test1");newAry.add("test2"); set.add(5, 6, 7, 8, 9); set.toArray();源代码
Set.prototype.toArray = function(){ return this.instance; }
将Set对象中的值根据指定连接符,连接成字符串返回,如果没有指定连接符则默认为逗号
var set=new Set(); set.add("test1");newAry.add("test2"); set.toString();源代码
Set.prototype.toString = function(){ return this.instance.join(', '); }
将Properties对象中的值,根据key=value的方式拼接起来组成字符串进行返回
var prop=new Properties(); prop.put("name","value"); prop.toString();源代码
Properties.prototype.toString = function(){ var str = ""; for(var i=0; i
将Properties对象中的值,根据key=value的方式拼接起来组成字符串进行返回,元素之间默认通过分号连接。 可以用户自定义,元素之间的指定符通过token1来指定,默认是分号 key与value之间通过token2来指定默认是等号
var prop=new Properties(); prop.put("name","value"); prop.toStringTokenizer();源代码
Properties.prototype.toStringTokenizer = function(token1, token2){ token1 = token1 == null ? ";" : token1; token2 = token2 == null ? "=" : token2; var str = ""; for(var i=0; i0){ str += token1; } str += key + token2 + value; } return str; }
将Properties对象中的值,根据key=value的方式拼接起来组成字符串进行返回,元素直接通过&进行拼接
var prop=new Properties(); prop.put("name","value"); prop.toStringTokenizer();源代码
Properties.prototype.toQueryString = function(){ if(this.size() < 1){ return ""; } var str = ""; for(var i=0; i0){ str += "&"; } if(typeof value == "object"){ } else{ str += key + "=" + encodeURIat(value); } } return str; }
获取properties对象元素的个数
var prop=new Properties(); prop.put("name","value"); prop.size();源代码
Properties.prototype.size = function(){ return this.instanceKeys.size(); }
获取properties对象中元素对象根据传入的key,而且可以传入一个缺少值,如果获取到元素对象的值为空则将缺少值赋值给该元素
var prop=new Properties(); prop.put("name",null); prop.get("name","张三");源代码
Properties.prototype.get = function(key, defaultValue){ if(key == null){ return null; } var returnValue = this.instance[key]; if(returnValue == null && defaultValue != null){ return defaultValue; } return returnValue; }
根据指定的key来删除相应的元素
var prop=new Properties(); prop.put("name",null); prop.remove("name");源代码
Properties.prototype.remove = function(key){ if(key == null){ return null; } this.instanceKeys.remove(key); delete this.instance[key] }
向Properties对象中添加元素,但如果对象中存在了key相同的元素则添加不进去
var prop=new Properties(); prop.put("name",null); prop.put("name","123");//其实这里是添加失败的,因为name这个元素已经添加过。源代码
Properties.prototype.put = function(key,value){ if(key == null){ return null; } if(this.instance[key] == null){ this.instanceKeys.add(key); } this.instance[key] = value; }
向Properties对象中添加元素,如果对象中存在了key相同的元素也可以添加进来
var prop=new Properties(); prop.put("name",null); prop.put("name","123");源代码
Properties.prototype.putRef = function(key,value){ if(key == null){ return null; } this.instanceKeys.add(key); this.instance[key] = value; }
跨层级来获取其值,当元素的value还是一个properties时就可以跨层级获取其中的值, 比如:userinfo.getMultilevel("department.name"); 等价于userinfo.get("department").get("name")
var userinfo=new Properties(); var department=new Properties(); department.put("name","前台开发"); userinfo.put("department",department); userinfo.getMultilevel("department.name");源代码
Properties.prototype.getMultilevel = function(key, defaultValue){ if(key == null){ return null; } var _keys = key.split("."); function getObject(obj, keys, i){ try{ if(obj == null || (typeof obj != "object")){ return null; } var obj1 = obj.get(keys[i]); if(i < keys.length - 1){ obj1 = getObject(obj1, keys, i + 1); } return obj1; } catch(e){ } return null; } var returnValue = getObject(this, _keys, 0); return returnValue == null ? defaultValue : returnValue; }
判断Properties对象是否包含指定key
var prop=new Properties(); prop.put("name",null); prop.containsKey("name");源代码
Properties.prototype.containsKey = function(key){ if(key == null){ return false; } return this.instance[key] != null; }
获取Properties对象的所有keys,返回的是ArrayList对象
var prop=new Properties(); prop.put("name",null); prop.keys();源代码
Properties.prototype.keys = function(){ return this.instanceKeys; }
获取Properties对象的所有values,返回的是ArrayList对象
var prop=new Properties(); prop.put("name",null); prop.values();源代码
Properties.prototype.values = function(){ var vs = new ArrayList(); for(var i=0; i
判断Properties对象是否为空
var prop=new Properties(); prop.put("name",null); prop.isEmpty();源代码
Properties.prototype.isEmpty = function(){ return this.instanceKeys.isEmpty(); }
清空Properties对象
var prop=new Properties(); prop.put("name",null); prop.clear();源代码
Properties.prototype.clear = function(){ this.instanceKeys.clear(); this.instance = {}; }
根据指定key1,key2的值交换2个元素的位置
var prop=new Properties(); prop.put("name","test"); prop.put("age",18); prop.swap("name","age"); alert(prop.keys().toString());//输出是age,name源代码
Properties.prototype.swap = function(key1, key2){ if(!key1 || !key2 || key1 == key2){ return; } var index1 = -1; var index2 = -1; for(var i = 0; i < this.instanceKeys.instance.length; i++) { if(this.instanceKeys.instance[i] == key1){ index1 = i; } else if(this.instanceKeys.instance[i] == key2){ index2 = i; } } this.instanceKeys.instance[index1] = key2; this.instanceKeys.instance[index2] = key1; }
根据Properties中元素,组装成[{key:'',value:''}]的方式返回
var prop=new Properties(); prop.put("name","test"); prop.put("age",18); prop.entrySet();源代码
Properties.prototype.entrySet = function(){ var result = []; for(var i=0; i
弹出窗口
var win = v3x.openDialog({ id:"documentIpad", title:v3x.getMessage("collaborationLang.collaboration_alertQuoteItem"), url : _ctxPath +"/ctp/common/associateddoc/assdocFrame.do", width: 650, height: 500, //isDrag:false, //targetWindow:getA8Top(), //fromWindow:window, type:'window', //relativeElement:obj, buttons:[{ id:'btn12', text: v3x.getMessage("collaborationLang.submit"), handler: function(){ win.close(); } }, { id:'btn21', text: v3x.getMessage("collaborationLang.cancel"), handler: function(){ win.close(); } }] });源代码
V3X.prototype.openDialog = function(json) { return new MxtWindow(json); }
弹出新界面窗口
参数名称 | 参数类型 | 是否必输 | 说明 |
html | boolean | 可选 | html为true时调用window.open,如果不为true则判断dialogType参数是否为modal,而且是ie浏览器则会通过showModalDialog来弹出窗口 |
FullScrean | boolean | 可选 | true表示全屏 |
workSpace | boolean | 可选 | true表示弹出的窗口与工作区workSpace大小一致 |
workSpaceRight | boolean | 可选 | 弹出窗口是去掉了右边菜单区域 |
width | int | 可选 | 默认值320 |
height | int | 可选 | 默认值200 |
resizable | yes or no | 可选 | 表示窗口是否可以改变大小,默认yes |
scrollbars | yes or no | 可选 | 表示窗口是否可以有滚动条,默认yes |
dialogType | str | 可选 | 默认值是modal, dialogType参数为modal,而且是ie浏览器则会通过showModalDialog来弹出窗口,如果不是ie浏览器则通过window.open来打开 |
var rv = v3x.openWindow({ url: contextPath + "/common/js/addDate/date.jsp?type=" + type + "&allowEmpty=" + allowEmpty + "&showButton=true", height: 230, width: 250, 'top': evt.screenY + 20, left: evt.screenX - 50 });
关闭窗口
var rv = v3x.openWindow({ url: "/common/js/addDate/date.jsp?type=" + 2 + "&allowEmpty=" + 3 + "&showButton=true", height: 230, width: 250, dialogType:'modal', workSpace: 'yes', 'top': 20, left: 50 }); v3x.closeWindow(rv);源代码
V3X.prototype.closeWindow = function(win) { win.close(); }
得到弹出当前窗口的直接父窗口
var rv = v3x.openWindow({ url: "/common/js/addDate/date.jsp?type=" + 2 + "&allowEmpty=" + 3 + "&showButton=true", height: 230, width: 250, dialogType:'modal', workSpace: 'yes', 'top': 20, left: 50 }); var prv=v3x.getParentWindow(rv); alert(prv.grid)源代码
V3X.prototype.getParentWindow = function(win){ win = win || window; if(win.dialogArguments){ return win.dialogArguments; } else{ return win.opener || win; } }
JS的国际化
v3x.getMessage("collaborationLang.submit")源代码
V3X.prototype.getMessage = function(key){ try{ var msg = eval("" + key); if(msg && arguments.length > 1){ for(var i = 0; i < arguments.length - 1; i++) { var regEx = eval("messageRegEx_" + i); var repMe = "" + arguments[i + 1]; if(repMe.indexOf("$_") != -1){ repMe = repMe.replace("$_", "$$_"); } msg = msg.replace(regEx, repMe); } } return msg; } catch(e){ } return ""; }
通过js脚本异步加载js文件
v3x.loadScriptFile(this.baseURL + url + "/" + this.currentLanguage + ".js?V=3_50_2_29");源代码
V3X.prototype.loadScriptFile = function(url) { for (var i=0; i'); this.loadedFiles[this.loadedFiles.length] = url; };
获取当前指定元素的横、纵向坐标位置
var el=document.getElementById("test"); v3x.getElementPosition(el);源代码
V3X.prototype.getElementPosition = function(el){ var ua = navigator.userAgent.toLowerCase(); var isOpera = (ua.indexOf('opera') != -1); var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof if(el.parentNode === null || el.style.display == 'none'){ return false; } var parent = null; var pos = []; var box; if(el.getBoundingClientRect){//IE box = el.getBoundingClientRect(); var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft); return {x:box.left + scrollLeft, y:box.top + scrollTop}; }else if(document.getBoxObjectFor){ // gecko box = document.getBoxObjectFor(el); var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0; var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0; pos = [box.x - borderLeft, box.y - borderTop]; }else{// safari & opera pos = [el.offsetLeft, el.offsetTop]; parent = el.offsetParent; if (parent != el) { while (parent) { pos[0] += parent.offsetLeft; pos[1] += parent.offsetTop; parent = parent.offsetParent; } } if (ua.indexOf('opera') != -1|| ( ua.indexOf('safari') != -1 && el.style.position == 'absolute')){ pos[0] -= document.body.offsetLeft; pos[1] -= document.body.offsetTop; } } if (el.parentNode){ parent = el.parentNode; }else{ parent = null; } while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML'){ // account for any scrolled ancestors pos[0] -= parent.scrollLeft; pos[1] -= parent.scrollTop; if (parent.parentNode) { parent = parent.parentNode; }else { parent = null; } } return {x:pos[0], y:pos[1]}; }
使按钮可以操作
var el=document.getElementById("test"); v3x.getElementPosition(el);源代码
function enableButton(button){ if(!button){ return false; } var el = null; if(typeof button == "string"){ el = document.getElementById(button); } else{ el = button; } if(!el){ return false; } var cDisabled=el.cDisabled; cDisabled=(cDisabled!=null); if(cDisabled){ el.cDisabled=null; el.innerHTML=el.children[0].children[0].innerHTML; if(el.cDisabled_onclick!=null){ el.onclick=el.cDisabled_onclick; el.cDisabled_onclick=null; } if(el.cDisabled_onmouseover!=null){ el.onmouseover=el.cDisabled_onmouseover; el.cDisabled_onmouseover=null; } if(el.cDisabled_onmouseout!=null){ el.onmouseout=el.cDisabled_onmouseout; el.cDisabled_onmouseout=null; } } }
使按钮变得不可以操作
var el=document.getElementById("test"); v3x.getElementPosition(el);源代码
function disableButton(button, height){ height = height || "100%"; if(!button){ return false; } var el = null; if(typeof button == "string"){ el = document.getElementById(button); } else{ el = button; } if(!el){ return false; } if(document.readyState != "complete") { if(typeof button == "string"){ window.setTimeout("disableButton('"+button+"')", 2500); }else{ window.setTimeout("disableButton("+button+")", 2500); } return; } var cDisabled = el.cDisabled; cDisabled=(cDisabled!=null); if(!cDisabled){ el.cDisabled = true; if(document.getElementsByTagName){ var str = ""; str += " "; str += el.innerHTML str += " "; str += ""; el.innerHTML = str; } else{ el.innerHTML=''+''+el.innerHTML+''+''; } if(el.onclick!=null){ el.cDisabled_onclick = el.onclick; el.onclick = null; } if(el.onmouseover!=null){ el.cDisabled_onmouseover = el.onmouseover; el.onmouseover = null; } if(el.onmouseout!=null){ el.cDisabled_onmouseout = el.onmouseout; el.onmouseout = null; } } }
发送ajax时,添加相应的参数
var requestCaller = new XMLHttpRequestCaller(this, "ajaxOrgManager", "canShowPeopleCard", false); requestCaller.addParameter(1, "Long", null); requestCaller.addParameter(2, "Long", memberId); var rs = requestCaller.serviceRequest();
发出请求
var requestCaller = new XMLHttpRequestCaller(this, "ajaxOrgManager", "canShowPeopleCard", false); requestCaller.addParameter(1, "Long", null); requestCaller.addParameter(2, "Long", memberId); var rs = requestCaller.serviceRequest();
定义ajax请求对象
参数名称 | 参数类型 | 是否必输 | 说明 |
_caller | object | 可选 | 组件对象,如果不是组件对象可以设置成null |
serviceName | str | 可选 | 服务名称,注意虽然该参数是可选,但不能serviceName,methodName,actionUrl三个同时为空 |
methodName | str | 可选 | 方法名称,注意虽然该参数是可选,但不能serviceName,methodName,actionUrl三个同时为空 |
async | boolean | 可选 | 默认true 是异步查询,如果需要同步则设置为false |
method | GET or POST | 可选 | 默认值POST |
needCheckLogin | boolean | 可选 | 校验是否登录系统,默认是true |
actionUrl | str | 可选 | 当没有设置serviceName、methodName的情况下,可以通过actionUrl来进行查询 |
var requestCaller = new XMLHttpRequestCaller(this, "ajaxOrgManager", "canShowPeopleCard", false); requestCaller.addParameter(1, "Long", null); requestCaller.addParameter(2, "Long", memberId); var rs = requestCaller.serviceRequest();
刷新当前工作区
refreshWorkSpace();
刷新当前页面
refreshIt();
页面回退
locationBack();
从input中读取属性为defaultValue的值
var obj=document.getElementById("phone"); getDefaultValue(obj)
对标题默认值的切换;去掉为默认值,显示空白,用在onFocus
var obj=document.getElementById("phone"); checkDefSubject(obj,true)
检测checkbox是否被选择
validateCheckbox("phone")
显示编辑器
showEditor("HTML")
日期转成中文大写形式
var backStr=date2chinese('2017-01-19'); alert(backStr)//输出二零一七年一月十九日
数字转成中文数字格式
var backStr=num2chinese('2'); alert(backStr)//二
添加日期年月日中文
var backStr=date2chinese1('2017-01-19'); alert(backStr)//2017年1月19日
将日期转换成中文展示格式,但零用O来表示
var backStr=date2chinese0('2017-01-19'); alert(backStr)//二〇一七年一月十九日
方法名称 | 描述 |
extendParam | 将para对象的属性复制到tpl对象中 但如果是数组属性则不进行复制 |
attrObj | 缓存控件对象 |
disableButton | 使按钮变得不可以操作 |
enableButton | 使按钮可以操作 |
refreshWorkSpace | 刷新当前工作区 |
refreshIt | 刷新当前页面 |
locationBack | 页面回退 |
getDefaultValue | 从input中读取属性为defaultValue的值 |
checkDefSubject | 对标题默认值的切换;去掉为默认值,显示空白,用在onFocus |
validateCheckbox | 检测checkbox是否被选择 |
showEditor | 显示编辑器 |
date2chinese | 日期转成中文大写形式 |
date2chinese1 | 添加日期年月日中文 |
date2chinese0 | 将日期转换成中文展示格式,但零用O来表示 |
方法名称 | 描述 |
isDate | 判断是否为合法的日期字符串 |
parseDate | 将日期字符串转换成日期对象,但该方法并没有Date.parseDate方法强大,parseDate是简单封装和转换,而Date.parseDate是calendar-debug.js提供,该方法可以指定字符串的格式进行转换。 |
formatDate | 对日期格式进行格式化 将2017-9-1格式的转换成2017-09-01格式 |
dateAdd | 得到输入日期前几天或者后几天的日期。 |
getWeekStart | 得到输入日期所在的星期的开始日期(星期天)。 |
getWeekEnd | 得到输入日期所在的星期的结束日期(星期六)。 |
getMonthStart | 得到输入日期所在的月份的开始日期。 |
getMonthEnd | 得到输入日期所在的月份的结束日期 |
getSeasonStart | 得到输入日期所在的季度的开始日期。 |
getSeasonEnd | 得到输入日期所在的季度的结束日期。 |
getWeekOfMonth | 得到这个月的第几周。 |
format | 日期格式化 |
方法名称 | 描述 |
indexOf | 数组中查找相应元素的位置。 |
extend | 可以理解为目标数据去继承某个数组,其实就是将参数数组的值都放到目标数组中。 |
contains | 判断数组中是否包含指定元素。 |
方法名称 | 描述 |
size | 返回arrayList对象元素的数量。 |
add | 向arrayList对象中添加元素。 |
addSingle | 向arrayList对象中添加元素,如果该元素已经存在则添加不进去。 |
addAt | 在指定位置增加元素。 |
addAll | 传入一个数组,将数组的所有元素加入到ArrayList对象中。 |
addList | 传入一个ArrayList,将ArrayList的所有元素加入到目标ArrayList对象中。 |
get | 根据指定的位置获取对应的对象 |
getLast | 获取最后一个元素。 |
set | 在指定位置插入相应的值,注意传入的index是已经存在元素的位置,也就是要通过add添加了元素的,可以理解set是进行元素修改操作的。 |
removeElementAt | 根据指定位置删除相应的元素。 |
remove | 根据元素对象删除相应的元素。 |
contains | 判断ArrayList中是否包含该元素对象,如果存放的元素是对象,可以指定其中的某个属性来判断是否存在。 |
indexOf | 获取指定元素在arryList对象里的具体位置,如果存放的元素是对象,可以指定其中的某个属性来判断,从前往后找。 |
lastIndexOf | 获取指定元素在arryList对象里的具体位置,如果存放的元素是对象,可以指定其中的某个属性来判断,从后往前找。 |
subList | 根据指定的起始位置,和结束位置,截取list中的部分返回。 |
toArray | 将ArrayList转换成数组Array。 |
isEmpty | 判断当前ArrayList是否为空。 |
clear | 清空ArrayList对象。 |
toString | 将ArrayList对象中的值根据指定连接符连接成字符串返回。 |
方法名称 | 描述 |
getBytesLength | 获取当前字符串占用的字节长度。。 |
getLimitLength | 根据指定的长度来获取字符串,如果字符串比指定长则截取并在后面追加相应的指定字符,如果字符串长度小于指定长度则直接返回。注意这里是根据字节长度来计算的。 |
escapeHTML | 对许多html标签字符串进行转义。 |
escapeUrl | 格式化url字符串,会替换其中的换行符并将特殊字符进行转义。 |
escapeSpace | 将字符串中的空格用 来代替。 |
escapeSameWidthSpace | 将字符串中的空格用 俩个  来代替。。 |
escapeQuot | 替换字符串中的单引号和双引号 |
startsWith | 判断字符串是否由指定字符串开头。。 |
endsWith | 判断字符串是否由指定字符串结尾。 |
trim | 去掉字符串前后的空格。 |
toCharArray | 将字符串转成数组。 |
方法名称 | 描述 |
size | 获取properties对象元素的个数 |
get | 获取properties对象中元素对象根据传入的key,而且可以传入一个缺少值,如果获取到元素对象的值为空则将缺少值赋值给该元素 |
remove | 根据指定的key来删除相应的元素。 |
put | 向Properties对象中添加元素,但如果对象中存在了key相同的元素则添加不进去。 |
putRef | 向Properties对象中添加元素,如果对象中存在了key相同的元素也可以添加进来。 |
getMultilevel | 跨层级来获取其值,当元素的value还是一个properties时就可以跨层级获取其中的值, 比如:userinfo.getMultilevel("department.name"); 等价于userinfo.get("department").get("name") |
containsKey | 判断Properties对象是否包含指定key |
keys | 获取Properties对象的所有keys,返回的是ArrayList对象 |
values | 获取Properties对象的所有values,返回的是ArrayList对象。 |
isEmpty | 判断Properties对象是否为空。 |
clear | 清空Properties对象。 |
swap | 根据指定key1,key2的值交换2个元素的位置。 |
entrySet | 根据Properties中元素,组装成[{key:'',value:''}]的方式返回。 |
toString | 将Properties对象中的值,根据key=value的方式拼接起来组成字符串进行返回。 |
toStringTokenizer | 将Properties对象中的值,根据key=value的方式拼接起来组成字符串进行返回,元素之间默认通过分号连接。 可以用户自定义,元素之间的指定符通过token1来指定,默认是分号 key与value之间通过token2来指定默认是等号。 |
toQueryString | 将Properties对象中的值,根据key=value的方式拼接起来组成字符串进行返回,元素直接通过&进行拼接。 |
方法名称 | 描述 |
add | 想set对象中插入值,可以单个插入也可以多个插入 |
size | 判断set对象中元素的个数 |
contains | 判断set对象是否存在指定元素。 |
isEmpty | 判断set对象是否为空,如果为空则返回true,否则返回false。 |
clear | 将当前set对象清空。 |
get | 根据当前元素的序号获取其值 |
toArray | 将set对象转换成一个数组返回 |
toString | 将Set对象中的值根据指定连接符,连接成字符串返回,如果没有指定连接符则默认为逗号 |
方法名称 | 描述 |
append | 想StringBuffer对象中拼接字符串 |
reset | 将StringBuffer对象置空,并将新传入的字符串赋值给该对象 |
clear | 将StringBuffer对象置空。 |
isEmpty | 判断set对象是否为空,如果为空则返回true,否则返回false。 |
isBlank | 判断StringBuffer对象是否为空。 |
toString | 将StringBuffer对象中的值根据指定连接符,连接成字符串返回 |
方法名称 | 描述 |
openDialog | 弹出窗口 |
openWindow | 弹出新界面窗口 |
closeWindow | 关闭窗口。 |
getParentWindow | 得到弹出当前窗口的直接父窗口 |
getMessage | JS的国际化。 |
loadScriptFile | 通过js脚本异步加载js文件 |
getElementPosition | 获取当前指定元素的横、纵向坐标位置 |