Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вылетает IExplorer, не могу найти причину 8-(
 
 автор: Andron   (08.08.2005 в 16:07)   письмо автору
 
 

Должен показываться календарик.
В 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;">&nbsp;<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="&nbsp;<&nbsp;"></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;">&nbsp;<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="&nbsp;<&nbsp;"></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="&nbsp;>&nbsp;">&nbsp;</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="&nbsp;>&nbsp;">&nbsp;</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="&nbsp;<">'+
                                                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=">&nbsp;">'+

                                         '</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;">' + '&nbsp;' + '</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;">' + '&nbsp;' + '</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 - вылетает, даже не ясно когда.
Подскажите что может быть, плиз!

   
 
 автор: Евгений Петров   (08.08.2005 в 19:52)   письмо автору
 
   для: Andron   (08.08.2005 в 16:07)
 

Не у всеж выделенка. Не пишите таких длинных кодингов, а прикрепляйте их как файл.

   
 
 автор: Andron   (09.08.2005 в 12:22)   письмо автору
 
   для: Евгений Петров   (08.08.2005 в 19:52)
 

Ок.
Но я хотел, чтобы можно было посмотреть код сразу. И может увидел бы кто-то в чем проблема...

Ну никак не могу выловить ошибку. Хелп!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования