this.help = function(wObj) { // 在wObj窗口(缺省:在新窗口)显示帮助页面
if (wObj == null) {
var attrString = "top=0,left=10,width=800,height=500,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes";
wObj = window.open("", "", attrString);
}
with (wObj.document) {
open("text/html");
writeln("<HTML>");
writeln("<HEAD>");
writeln("<title>说明</title>");
writeln("<style>");
writeln("<!--");
writeln("td {font-face:宋体;font-size:12px;line-height:12px;letter-spacing:0px;margin-top:0px;}");
writeln(".tit {COLOR:#ffffff;backGround-color:#999933;font-face:宋体;font-size:12px;text-align:center;font-weight:bold}");
writeln("-->");
writeln("</style>");
writeln("</HEAD>");
writeln("<BODY topmargin='0' leftmargin='0' marginheight='0' marginwidth='0'>");
writeln("<table border='1' cellpadding='3' cellspacing='0'>");
writeln("<tr><td colspan=3 class=tit>建立日历的方法</td></tr>");
writeln("<tr><td nowrap><b>1、var myWebCalendar = WebCalendar(objName);</b></td><td colspan=2>首先建立一个日历处理对象</td></tr>");
writeln("<tr><td></td><td colspan=2>其中,objName是赋予该对象的名。以便此后可通过“document.objName”来调用之。</td></tr>");
writeln("<tr><td align=right>它有如下只读属性:</td><td>name</td><td>日历对象名。字母、数字、下划线,不可间空</td></tr>");
writeln("<tr><td></td><td>webCalendar</td><td>已画的日历</td></tr>");
writeln("<tr><td align=right>它有如下方法:</td><td>Parameter()</td><td>建立日历的参数集对象</td></tr>");
writeln("<tr><td></td><td>help(wObj)</td><td>在wObj窗口(缺省:在新窗口)显示帮助页面</td></tr>");
writeln("<tr><td></td><td>open(d)</td><td>打开(显示)日历</td></tr>");
writeln("<tr><td></td><td>close()</td><td>关闭(不显示)日历</td></tr>");
writeln("<tr><td></td><td>reset(p)</td><td>重置日历</td></tr>");
writeln("<tr><td></td><td>draw(p, putObj)</td><td>画出日历(其中,p:日历的参数集。putObj:放置日历的目标元素)</td></tr>");
writeln("<tr><td nowrap><b>2、var p = new myWebCalendar.Parameter();</b></td><td colspan=2>然后,为所画日历建立一个参数集对象</td></tr>");
writeln("<tr><td align=right>参数集对象有如下属性:</td><td>yearOffset = 20;</td><td>年下拉框中,年的上下偏移值</td></tr>");
writeln("<tr><td></td><td>minYear = 1000;</td><td>最小年份</td></tr>");
writeln("<tr><td></td><td>maxYear = 9999;</td><td>最大年份</td></tr>");
writeln("<tr><td></td><td>seperator = '.';</td><td>输入年月日的分隔字符</td></tr>");
writeln("<tr><td></td><td>dateFormater = 'yyyy年mm月dd日';</td><td>返回的日期格式(y:2位年;m:月;d:日。y、m、d:1个时,为原值;否则,有几位就高位补0到几位)</td></tr>");
writeln("<tr><td></td><td>allowMove = true;</td><td>日历可移动否</td></tr>");
writeln("<tr><td></td><td>fontFamily = '宋体,Verdana';</td><td>字体库</td></tr>");
writeln("<tr><td></td><td>fontSize = 12;</td><td>字体大小</td></tr>");
writeln("<tr><td></td><td>headBgColor = '#686C7E';</td><td>年月行的背景颜色</td></tr>");
writeln("<tr><td></td><td>headColor = '#ffffff';</td><td>年月行的文字颜色</td></tr>");
writeln("<tr><td></td><td>weekBgColor = '#E0DFE4';</td><td>星期的背景颜色</td></tr>");
writeln("<tr><td></td><td>weekColor = '#000000';</td><td>星期的文字颜色</td></tr>");
writeln("<tr><td></td><td>wordColor = '#000000';</td><td>文字颜色</td></tr>");
writeln("<tr><td></td><td>dayBgColor = '#f6f6f6';</td><td>日期数字背景色</td></tr>");
writeln("<tr><td></td><td>wordDark = '#777777';</td><td>非当月日期的暗色</td></tr>");
writeln("<tr><td></td><td>todayBgColor = '#00ddff';</td><td>今天在日历上的背景色</td></tr>");
writeln("<tr><td></td><td>oldDayBgColor = '#00dd00';</td><td>输入日期在日历上的背景色</td></tr>");
writeln("<tr><td></td><td>darkBorder = '#686C7C';</td><td>外框左右边线的立体表达色</td></tr>");
writeln("<tr><td></td><td>gridBorder = '#aaaaaa';</td><td>栅格线的颜色</td></tr>");
writeln("<tr><td></td><td>setupColor = '#ff0000';</td><td>鼠标置上时的日期颜色</td></tr>");
writeln("<tr><td></td><td>setupBgColor = '#dddddd';</td><td>鼠标置上时的日期背景颜色</td></tr>");
writeln("<tr><td align=right>及方法:</td><td>test()</td><td>检查参数是否正确</td></tr>");
writeln("<tr><td nowrap><b>3、myWebCalendar.draw(p, putObj);</b></td><td colspan=2>接着,利用所建参数集对象画出日历</td></tr>");
writeln("<tr><td align=right>日历有如下属性:</td><td>eventSrc</td><td>获取日历的触发控件</td></tr>");
writeln("<tr><td></td><td>parameter</td><td>日历的参数集</td></tr>");
writeln("<tr><td></td><td>frameWindow</td><td>日历的 iframe 载体</td></tr>");
writeln("<tr><td align=right>及方法:</td><td>open(d)</td><td>打开(显示)日历</td></tr>");
writeln("<tr><td></td><td>close()</td><td>关闭(不显示)日历</td></tr>");
writeln("<tr><td></td><td>reset(p)</td><td>重置日历</td></tr>");
writeln("</TABLE>");
writeln("</BODY></HTML>");
close();
}
wObj.focus();
}
if (wObj == null) {
var attrString = "top=0,left=10,width=800,height=500,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes";
wObj = window.open("", "", attrString);
}
with (wObj.document) {
open("text/html");
writeln("<HTML>");
writeln("<HEAD>");
writeln("<title>说明</title>");
writeln("<style>");
writeln("<!--");
writeln("td {font-face:宋体;font-size:12px;line-height:12px;letter-spacing:0px;margin-top:0px;}");
writeln(".tit {COLOR:#ffffff;backGround-color:#999933;font-face:宋体;font-size:12px;text-align:center;font-weight:bold}");
writeln("-->");
writeln("</style>");
writeln("</HEAD>");
writeln("<BODY topmargin='0' leftmargin='0' marginheight='0' marginwidth='0'>");
writeln("<table border='1' cellpadding='3' cellspacing='0'>");
writeln("<tr><td colspan=3 class=tit>建立日历的方法</td></tr>");
writeln("<tr><td nowrap><b>1、var myWebCalendar = WebCalendar(objName);</b></td><td colspan=2>首先建立一个日历处理对象</td></tr>");
writeln("<tr><td></td><td colspan=2>其中,objName是赋予该对象的名。以便此后可通过“document.objName”来调用之。</td></tr>");
writeln("<tr><td align=right>它有如下只读属性:</td><td>name</td><td>日历对象名。字母、数字、下划线,不可间空</td></tr>");
writeln("<tr><td></td><td>webCalendar</td><td>已画的日历</td></tr>");
writeln("<tr><td align=right>它有如下方法:</td><td>Parameter()</td><td>建立日历的参数集对象</td></tr>");
writeln("<tr><td></td><td>help(wObj)</td><td>在wObj窗口(缺省:在新窗口)显示帮助页面</td></tr>");
writeln("<tr><td></td><td>open(d)</td><td>打开(显示)日历</td></tr>");
writeln("<tr><td></td><td>close()</td><td>关闭(不显示)日历</td></tr>");
writeln("<tr><td></td><td>reset(p)</td><td>重置日历</td></tr>");
writeln("<tr><td></td><td>draw(p, putObj)</td><td>画出日历(其中,p:日历的参数集。putObj:放置日历的目标元素)</td></tr>");
writeln("<tr><td nowrap><b>2、var p = new myWebCalendar.Parameter();</b></td><td colspan=2>然后,为所画日历建立一个参数集对象</td></tr>");
writeln("<tr><td align=right>参数集对象有如下属性:</td><td>yearOffset = 20;</td><td>年下拉框中,年的上下偏移值</td></tr>");
writeln("<tr><td></td><td>minYear = 1000;</td><td>最小年份</td></tr>");
writeln("<tr><td></td><td>maxYear = 9999;</td><td>最大年份</td></tr>");
writeln("<tr><td></td><td>seperator = '.';</td><td>输入年月日的分隔字符</td></tr>");
writeln("<tr><td></td><td>dateFormater = 'yyyy年mm月dd日';</td><td>返回的日期格式(y:2位年;m:月;d:日。y、m、d:1个时,为原值;否则,有几位就高位补0到几位)</td></tr>");
writeln("<tr><td></td><td>allowMove = true;</td><td>日历可移动否</td></tr>");
writeln("<tr><td></td><td>fontFamily = '宋体,Verdana';</td><td>字体库</td></tr>");
writeln("<tr><td></td><td>fontSize = 12;</td><td>字体大小</td></tr>");
writeln("<tr><td></td><td>headBgColor = '#686C7E';</td><td>年月行的背景颜色</td></tr>");
writeln("<tr><td></td><td>headColor = '#ffffff';</td><td>年月行的文字颜色</td></tr>");
writeln("<tr><td></td><td>weekBgColor = '#E0DFE4';</td><td>星期的背景颜色</td></tr>");
writeln("<tr><td></td><td>weekColor = '#000000';</td><td>星期的文字颜色</td></tr>");
writeln("<tr><td></td><td>wordColor = '#000000';</td><td>文字颜色</td></tr>");
writeln("<tr><td></td><td>dayBgColor = '#f6f6f6';</td><td>日期数字背景色</td></tr>");
writeln("<tr><td></td><td>wordDark = '#777777';</td><td>非当月日期的暗色</td></tr>");
writeln("<tr><td></td><td>todayBgColor = '#00ddff';</td><td>今天在日历上的背景色</td></tr>");
writeln("<tr><td></td><td>oldDayBgColor = '#00dd00';</td><td>输入日期在日历上的背景色</td></tr>");
writeln("<tr><td></td><td>darkBorder = '#686C7C';</td><td>外框左右边线的立体表达色</td></tr>");
writeln("<tr><td></td><td>gridBorder = '#aaaaaa';</td><td>栅格线的颜色</td></tr>");
writeln("<tr><td></td><td>setupColor = '#ff0000';</td><td>鼠标置上时的日期颜色</td></tr>");
writeln("<tr><td></td><td>setupBgColor = '#dddddd';</td><td>鼠标置上时的日期背景颜色</td></tr>");
writeln("<tr><td align=right>及方法:</td><td>test()</td><td>检查参数是否正确</td></tr>");
writeln("<tr><td nowrap><b>3、myWebCalendar.draw(p, putObj);</b></td><td colspan=2>接着,利用所建参数集对象画出日历</td></tr>");
writeln("<tr><td align=right>日历有如下属性:</td><td>eventSrc</td><td>获取日历的触发控件</td></tr>");
writeln("<tr><td></td><td>parameter</td><td>日历的参数集</td></tr>");
writeln("<tr><td></td><td>frameWindow</td><td>日历的 iframe 载体</td></tr>");
writeln("<tr><td align=right>及方法:</td><td>open(d)</td><td>打开(显示)日历</td></tr>");
writeln("<tr><td></td><td>close()</td><td>关闭(不显示)日历</td></tr>");
writeln("<tr><td></td><td>reset(p)</td><td>重置日历</td></tr>");
writeln("</TABLE>");
writeln("</BODY></HTML>");
close();
}
wObj.focus();
}
this.yearOffset = 20; // 定义年下拉框的年的上下偏移值
this.minYear = 1000; // 最小年份
this.maxYear = 9999; // 最大年份
this.seperator = '.'; // myDays中,年月日的分隔字符
this.dateFormater = 'yyyy.mm.dd'; // 返回的日期格式(y:2位年;m:月;d:日。y、m、d:1个时,为原值;否则,有几位就高位补0到几位)
this.allowMove = true; // 日历可移动否
this.fontFamily = "宋体,Verdana"; // 字体库
this.fontSize = 12; // 字体大小
this.headBgColor = "#686C7E"; // 年月行的背景颜色。如:#f6f6f6
this.headColor = "#ffffff"; // 年月行的文字颜色。如:#000000
this.weekBgColor = "#E0DFE4"; // 星期的背景颜色。如:#E0DFE4
this.weekColor = "#000000"; // 星期的文字颜色。如:#000000
this.wordColor = "#000000"; // 文字颜色。如:#000000
this.dayBgColor = "#f6f6f6"; // 日期数字背景色。如:#f6f6f6
this.wordDark = "#777777"; // 非当月日期的暗色。如:#777777
this.todayBgColor = "#00ddff"; // 今天在日历上的背景色。如:#00ddff
this.oldDayBgColor = "#00dd00"; // 输入日期在日历上的背景色。如:#00dd00
this.darkBorder = "#686C7C"; // 外框左右边线的立体表达色。如:#686C7C
this.gridBorder = "#aaaaaa"; // 栅格线的颜色。如:#777777
this.setupColor = "#ff0000"; // 鼠标置上时的日期颜色
this.setupBgColor = "#dddddd"; // 鼠标置上时的日期背景颜色
this.test = function() { // 检查参数
return true;
}
return this;
}
this.draw = function(p, putObj) { // 画日历。p:日历的参数集。putObj:放置日历的目标元素。空:则document.write;否则putObj.innerHTML=
if (this.webCalendar != null) {alert("日历已经画过了"); return;}
if (p == null) {p = new this.Parameter();}
if (!p.test()) {return;} // 如果参数检查未通过
var objID = "WebCalendar_" + this.name;
var objName1 = "document." + this.name;
var objName2 = "document.all." + objID;
var str = "";
str += "<div id='" + objID + "' style='position:absolute; top:20; left:20; width:150; height:200; display:none'>";
str += "<iframe id='" + objID + "_frame' name='" + objID + "_frame' scrolling=no frameborder=0 width='100%' height='100%'></iframe>";
str += "</div>";
if (putObj) {putObj.innerHTML = str;}
else {document.writeln(str);} str = "<HTML>\n";
str += "<HEAD>\n";
str += "<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>\n";
str += "<TITLE>日历<\/TITLE>\n";
str += "<sc"+"ript language=javascript>\n";
str += "<!--\n";
str += "var yearOffset = " + p.yearOffset + "; // 定义年下拉框的年的上下偏移值\n";
str += "var minYear = " + p.minYear + "; // 最小年份\n";
str += "var maxYear = " + p.maxYear + "; // 最大年份\n";
str += "var seperator = '" + p.seperator + "'; // myDays中,年月日的分隔字符\n";
str += "var dateFormater = '" + p.dateFormater + "'; // 返回的日期格式(y:2位年;m:月;d:日。y、m、d:1个时,为原值;否则,有几位就高位补0到几位)\n";
str += "var allowMove = " + p.allowMove + "; // 日历可移动否\n";
str += "var wordColor = '" + p.wordColor + "'; // 文字颜色\n";
str += "var wordDark = '" + p.wordDark + "'; // 非当月日期的暗色\n";
str += "var dayBgColor = '" + p.dayBgColor + "'; // 日期数字背景色\n";
str += "var todayBgColor = '" + p.todayBgColor + "'; // 今天在日历上的背景色\n";
str += "var oldDayBgColor = '" + p.oldDayBgColor + "'; // 输入日期在日历上的背景色\n";
str += "var setupColor = '" + p.setupColor + "'; // 鼠标置上时的日期颜色\n";
str += "var setupBgColor = '" + p.setupBgColor + "'; // 鼠标置上时的日期背景颜色\n";
str += "var inputDate = ''; // 输入原值(其格式为:yyyy.mm.dd。其中的'.'取自参数集合的seperator)\n";
str += "var currentYear = " + (new Date().getYear()) + ";\n";
str += "var currentMonth = " + (new Date().getMonth()+1) + ";\n";
str += "var isMove = false, oldX = 0, oldY = 0, parentObj;\n";
str += "var myDays = new Array(40); // 定义日历展示用的数组(保存6周的日期)\n";
+ " if (y==null || y=='' || isNaN(y)) {y = new Date().getYear();}\n"
+ " y = (y<=minYear ? minYear : (y>=maxYear? maxYear : y));\n"
+ " var minY = y - yearOffset;\n"
+ " var maxY = y + yearOffset;\n"
+ " minY = (minY<=minYear ? minYear : minY);\n"
+ " maxY = (maxY>=maxYear ? maxYear : maxY);\n"
+ " for (var i=yearSelect.options.length-1; i>=0; i--) {yearSelect.options.remove(i);}\n"
+ " var objOption;\n"
+ " for (var i=minY; i<=maxY; i++) {\n"
+ " objOption = new Option(i +'年', i);"
+ " yearSelect.options[yearSelect.options.length] = objOption;\n"
+ " }\n"
+ " yearSelect.style.display = 'block';\n"
+ " yearSelect.value = y;\n"
+ " parentObj = parent.document." + this.name + ".webCalendar;\n"
+ " parentObj.style.left = parseInt(parentObj.style.left)+1;\n"
// + " parentObj.style.left = parseInt(parentObj.style.left)-1;\n"
+ " yearSelect.focus();\n"
+ "}\n";
str += "function createMonthSelect(m) { // 月份的下拉框\n"
+ " if (m==null || m=='' || isNaN(m)) {m = new Date().getMonth() + 1;}\n"
+ " monthSelect.style.display = 'block';\n"
+ " monthSelect.value = m;\n"
+ " parentObj = parent.document." + this.name + ".webCalendar;\n"
+ " parentObj.style.left = parseInt(parentObj.style.left)+1;\n"
+ " var w1 = parseInt(document.all.calendarTable.offsetWidth, 10);\n"
+ " var w2 = parseInt(document.all.monthSelect.offsetWidth, 10);\n"
+ " monthSelect.style.left = w1 - w2 - 2;\n"
+ " parentObj.style.left = parseInt(parentObj.style.left)-1;\n"
+ " monthSelect.focus();\n"
+ "}\n";
str += "function yearChange(obj) {\n"
+ " currentYear = parseInt(obj.value, 10);\n"
+ " obj.style.display = 'none';\n"
+ " resetDays();\n"
+ "}\n";
str += "function monthChange(obj) {\n"
+ " currentMonth = parseInt(obj.value, 10);\n"
+ " obj.style.display = 'none';\n"
+ " resetDays();\n"
+ "}\n";
str += "function previousYear() {\n"
+ " if (currentYear > minYear) {currentYear--;}\n"
+ " else {alert('已到达最小年份');}\n"
+ " resetDays();\n"
+ "}\n";
str += "function nextYear() {\n"
+ " if (currentYear < maxYear) {currentYear++;}\n"
+ " else {alert('已到达最大年份');}\n"
+ " resetDays();\n"
+ "}\n";
str += "function previousMonth() {\n"
+ " if (currentMonth > 1) {\n"
+ " currentMonth--;\n"
+ " resetDays();\n"
+ " }\n"
+ " else {if (currentYear > minYear) {\n"
+ " currentYear--;\n"
+ " currentMonth = 12;\n"
+ " resetDays();\n"
+ " }\n"
+ " else {alert('已到达最小年份');}\n"
+ " }\n"
+ "}\n";
str += "function nextMonth() {\n"
+ " if (currentMonth < 12) {\n"
+ " currentMonth++;\n"
+ " resetDays();\n"
+ " }\n"
+ " else {if (currentYear < maxYear) {\n"
+ " currentYear++;\n"
+ " currentMonth = 1;\n"
+ " resetDays();\n"
+ " }\n"
+ " else {alert('已到达最大年份');}\n"
+ " }\n"
+ "}\n";
另一半在这儿