| Должен показываться календарик.
В html есть следующий код (пример):
<HTML>
<HEAD>
<TITLE> </TITLE>
<SCRIPT LANGUAGE="JavaScript" Src="calendar.js"></Script>
</HEAD>
<BODY>
<div id="calDiv" style="display: none; position: absolute; background: #ffffff;" ></div>
<input style="border: 0px;" type="Text" id="pr_CVO_Completed_Date" maxlength="25" size="10" value="08 Mar 2005" readonly>
<img onClick="NewCal('pr_CVO_Completed_Date');" src="img/cal.gif" width="16" height="16" border="0" alt="Pick a date">
...
</Body>
</Html>
|
Код скрипта:
<!--
var mouseX = 0;
var mouseY = 0;
var divName = 'calDiv';
var selDay = "";
var selMonth = "";
var selYear = "";
document.onmousemove=getMousePos;
function writeToDoc(pCtrl, showYearBtn){
var calendar_body = "";
var inp_year = selYear;
var inp_month = selMonth;
var inp_day = selDay;
var Calendar = new Date();
var day_of_week = new Array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
var month_of_year = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
var month_of_year_cut = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
if ((inp_year=='') || (inp_month=='') || (inp_day=='')){
inp_year = Calendar.getFullYear();
inp_month = month_of_year_cut[Calendar.getMonth()];
var d = Calendar.getDate();
if (d<10)
d='0'+d;
inp_day = d;
}
var year = inp_year;
var month = 0;
var sel_day = inp_day;
var lyt=year/4; // leap year test to account for extra day in Feb
if (lyt == Math.round(lyt)) {febdays=29}
else {febdays=28}
var Dim= new Array(31, febdays, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // days in month array
for (i=0; i<12; i++)
{
if (inp_month==month_of_year_cut[i])
{
month = i;
break;
}
else
month = 0;
}
var style_filter = 'background-color: #3366CC; filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#3366CC, EndColorStr=#99ccff);';
var btn_left;
var btn_right;
if (month==0){
btn_left = '<td style="'+ style_filter +' vertical-align: middle;"> <INPUT onClick="javascript: selDay = '+ inp_day +'; selMonth = \''+month_of_year_cut[11]+'\'; selYear = '+(year-1)+'; writeToDoc(\''+pCtrl+'\',0);" HIDEFOCUS="true" style="height: 20; border: 0px; '+ style_filter +'" TYPE="button" id="btn_left" value=" < "></td>';
}
else
{
if (Dim[month-1]<inp_day)
inp_day_tmp = Dim[month-1];
else
inp_day_tmp = inp_day;
btn_left = '<td style="'+ style_filter +' vertical-align: middle;"> <INPUT onClick="javascript: selDay = '+ inp_day_tmp +'; selMonth = \''+month_of_year_cut[month-1]+'\'; selYear = '+year+'; writeToDoc(\''+pCtrl+'\',0);" HIDEFOCUS="true" style="height: 20; border: 0px; '+ style_filter +'" TYPE="button" id="btn_left" value=" < "></td>';
}
if (month==11){
btn_right = '<td style="'+ style_filter +' vertical-align: middle; text-align: right;"><INPUT onClick="javascript: selDay = '+ inp_day_tmp +'; selMonth = \''+month_of_year_cut[0]+'\'; selYear = '+(parseInt(year)+1)+'; writeToDoc(\''+pCtrl+'\',0);" HIDEFOCUS="true" style="height: 20; border: 0px; '+ style_filter +'" TYPE="button" id="btn_left" value=" > "> </td>';
}
else{
if (Dim[month+1]<inp_day)
inp_day_tmp = Dim[month+1];
else
inp_day_tmp = inp_day;
btn_right = '<td style="'+ style_filter +' vertical-align: middle; text-align: right;"><INPUT onClick="javascript: selDay = '+ inp_day_tmp +'; selMonth = \''+month_of_year_cut[month+1]+'\'; selYear = '+year+'; writeToDoc(\''+pCtrl+'\',0);" HIDEFOCUS="true" style="height: 20; border: 0px; '+ style_filter +'" TYPE="button" id="btn_left" value=" > "> </td>';
}
var str_inp_year = '<INPUT readonly style=" height: 20px; width: 27px; padding-left: 0px; padding-top: 5px; border: 0px solid black; font-size: 12px; color: #ffffff; '+ style_filter +'" Type="Edit" Id="myEdit" Value="'+inp_year+'" OnClick= '+ "'" + 'document.getElementById("btn_yright").style.display=""; document.getElementById("btn_yleft").style.display="";'+"'" +'>';
calendar_body += '<table border=0 style="border: 1px outset #AAAAAA;" cellpadding="0" cellspacing="0">' +
'<tr>'+
btn_left +
'<td colspan=5 height="20" style="font-family: MS Sans Serif, Arial, Helvetica, sans-serif; font-size: 12px; color: #ffffff; text-align: center; vertical-align: bottom; '+ style_filter +'">' +
month_of_year[month] + ' ' +
'<INPUT onClick="javascript: selDay = '+ inp_day_tmp +'; selMonth = \''+month_of_year_cut[month]+'\'; selYear = '+(parseInt(year)-1)+'; writeToDoc(\''+pCtrl+'\',1);" HIDEFOCUS="true" style="height: 20; border: 0px solid black; color: #0033CC; ';
var displ='';
if (showYearBtn=='0')
displ="display: none;";
calendar_body += displ+ style_filter +'" TYPE="button" id="btn_yleft" value=" <">'+
str_inp_year +
'<INPUT onClick="javascript: selDay = '+ inp_day_tmp +'; selMonth = \''+month_of_year_cut[month]+'\'; selYear = '+(parseInt(year)+1)+'; writeToDoc(\''+pCtrl+'\',1);" HIDEFOCUS="true" style="height: 20; border: 0px solid black; color: #0033CC;'+displ+ style_filter +'" TYPE="button" id="btn_yright" value="> ">'+
'</td>'+
btn_right +
'</tr>';
// PRINTS DAY OF WEEK (Sunday, Monday,....)
calendar_body += '<tr>';
for(index=0; index < 7; index++)
{
calendar_body += '<td height="20" width="25" align="center"><font style="font-family: MS Sans Serif, Arial, Helvetica, sans-serif; font-size: 12px; color: blue;">'+ day_of_week[index] +'</font></td>';
}
calendar_body += '</tr>';
var Calendar = new Date();
var cur_year = Calendar.getFullYear(); // Returns year
var cur_month = Calendar.getMonth(); // Returns month (0-11)
var cur_day = Calendar.getDate(); // Returns day (1-31)
calendar_body += '<tr>';
Calendar.setFullYear(year, month, 1);
// FILL IN BLANK GAPS UNTIL 1st DAY
var numOfCurDay = Calendar.getDay();
if (!numOfCurDay) numOfCurDay = 7;
for(index=1; index < numOfCurDay; index++)
calendar_body += '<td height="20" style="cursor: default;">' + ' ' + '</td>';
Days_in_Month = Dim[month];
for(index=0; index < Days_in_Month; index++)
{
var day = index+1;
d=day.toString();
//Add 0 if day is less then 10
if (d.length==1)
day='0'+day;
// Highlight Today's Date
var isCurDay = '';
if ((cur_year==Calendar.getFullYear())&&((cur_month)==Calendar.getMonth())&&(cur_day==(index+1)))
isCurDay = ' border: 1px ridge red; ';
// Highlight Selected Date
var isSelDay = '';
if( sel_day== index+1 )
isSelDay ='background-color: #D2DCF0; filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#94B6FA, EndColorStr=#ECF0F8);';
calendar_body += '<td height="20" style=" font-family: MS Sans Serif, Arial, Helvetica, sans-serif; font-size: 12px; cursor: pointer; cursor: hand; '+isCurDay+isSelDay+'" align="center" onClick="javascript: document.getElementById(\''+pCtrl+'\').value=\''+day+' '+month_of_year_cut[month]+' '+year+'\'; hideDiv();">' +
(index+1)+
'</td>';
if (Calendar.getDay() == 0)
calendar_body += '</tr><tr>';
// Increments Until End Of The Month
Calendar.setDate(Calendar.getDate()+1);
}// end for loop
Calendar.setDate(Calendar.getDate()-1);
// Fill In Blank
numOfCurDay = Calendar.getDay();
if (numOfCurDay!=0) {
for(index=numOfCurDay; index < 7; index++)
calendar_body += '<td style="cursor: default;">' + ' ' + '</td>';
}
calendar_body += '</tr>';
calendar_body += '<tr>';
calendar_body += '<td colspan=4><input type="button" style="font: 12px Verdana; color: #7F7F7F; border: 0px; background: #ffffff; " value="Clear Field" onClick="document.getElementById(\''+pCtrl+'\').value=\'\';"></td>';
calendar_body += '<td colspan=3 align=right><input type="button" style="font: 12px Verdana; color: #7F7F7F; border: 0px; background: #ffffff" value="Close" onClick="hideDiv();"></td>';
calendar_body += '</tr>';
calendar_body += '</table>';
document.getElementById(divName).innerHTML = calendar_body;
}
function getMousePos(moveEvent) {
mouseX=(window.event)? window.event.x+20 : moveEvent.pageX+20;
mouseY=(window.event)? window.event.y+110 : moveEvent.pageY-10;
}
function hideDiv() {
oObject = document.getElementById(divName);
oObject.style.display = 'none';
DivIsShown = false;
}
function NewCal(pCtrl){
oObject = document.getElementById(divName);
oObject.style.display = 'block';
oObject.style.top = mouseY;
oObject.style.left = mouseX;
// Init calendar values - reading from input
exDateTime = document.getElementById(pCtrl).value;
selDay = exDateTime.charAt(0) + exDateTime.charAt(1);
selMonth = exDateTime.charAt(3) + exDateTime.charAt(4) + exDateTime.charAt(5);
selYear = exDateTime.charAt(7) + exDateTime.charAt(8) + exDateTime.charAt(9) + exDateTime.charAt(10);
writeToDoc(pCtrl,0);
}
//-->
|
В Firefox работает нормально. А в IE - вылетает, даже не ясно когда.
Подскажите что может быть, плиз! | |