Warning: Undefined array key "mobile_dir" in /home/kagla/new-sir/old/common.php on line 315
cannot read properties of undefined (reading 'document')

cannot read properties of undefined (reading 'document')

cannot read properties of undefined (reading 'document')

QA

cannot read properties of undefined (reading 'document')

답변 1

본문


var target;
var pop_top;
var pop_left;
var cal_Day;
var oPopup = 
window.createPopup();
function Calendar_Click(e) {
    cal_Day = e.title;
    if (cal_Day.length > 6) {
        target.value = cal_Day
    }
    oPopup.hide();
}
function Calendar_D(obj) {
    var now = obj.value.split("-");
    target = obj;
    pop_top = document.body.clientTop + GetObjectTop(obj) - document.body.scrollTop;
    pop_left = document.body.clientLeft + GetObjectLeft(obj) -  document.body.scrollLeft;
    if (now.length == 3) {
        Show_cal(now[0],now[1],now[2]);                    
        
    } else {
        now = new Date();
        Show_cal(now.getFullYear(), now.getMonth()+1, now.getDate());
    }
}
function Calendar_D_No_Hyphen(obj) {
    var now = obj.value.split("-");
    target = obj;
    pop_top = document.body.clientTop + GetObjectTop(obj) - document.body.scrollTop;
    pop_left = document.body.clientLeft + GetObjectLeft(obj) -  document.body.scrollLeft;
    if (now.length == 3) {
        Show_cal_No_Hyphen(now[0],now[1],now[2]);                    
    } else {
        now = new Date();
        Show_cal_No_Hyphen(now.getFullYear(), now.getMonth()+1, now.getDate());
    }
}
function Calendar_W(obj) {
    var now = obj.value.split("-");
    target = obj;
    pop_top = document.body.clientTop + GetObjectTop(obj) - document.body.scrollTop;
    pop_left = document.body.clientLeft + GetObjectLeft(obj) -  document.body.scrollLeft;
    if (now.length == 2) {
        Show_cal_W(now[0],now[1]);                    
    } else {
        now = new Date();
        Show_cal_W(now.getFullYear(), now.getMonth()+1);
    }
}
function Calendar_M(obj) {
    var now = obj.value.split("-");
    target = obj;
    pop_top = document.body.clientTop + GetObjectTop(obj) - document.body.scrollTop;
    pop_left = document.body.clientLeft + GetObjectLeft(obj) -  document.body.scrollLeft;
    if (now.length == 2) {
        Show_cal_M(now[0],now[1]);                    
    } else {
        now = new Date();
        Show_cal_M(now.getFullYear(), now.getMonth()+1);
    }
}
function doOver(el) {
    cal_Day = el.title;
    if (cal_Day.length > 7) {
        el.style.borderColor = "#FF0000";
    }
}
function doOut(el) {
    cal_Day = el.title;
    if (cal_Day.length > 7) {
        el.style.borderColor = "#FFFFFF";
    }
}
function day2(d) {    // 2자리 숫자료 변경
    var str = new String();
    
    if (parseInt(d) < 10) {
        str = "0" + parseInt(d);
    } else {
        str = "" + parseInt(d);
    }
    return str;
}
function Show_cal(sYear, sMonth, sDay) {
    var Months_day = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31)
    var Month_Val = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
    var intThisYear = new Number(), intThisMonth = new Number(), intThisDay = new Number();
    datToday = new Date();                                                    // 현재 날자 설정
    
    intThisYear = parseInt(sYear,10);
    intThisMonth = parseInt(sMonth,10);
    intThisDay = parseInt(sDay,10);
    
    if (intThisYear == 0) intThisYear = datToday.getFullYear();                // 값이 없을 경우
    if (intThisMonth == 0) intThisMonth = parseInt(datToday.getMonth(),10)+1;    // 월 값은 실제값 보다 -1 한 값이 돼돌려 진다.
    if (intThisDay == 0) intThisDay = datToday.getDate();
    
    switch(intThisMonth) {
        case 1:
                intPrevYear = intThisYear -1;
                intPrevMonth = 12;
                intNextYear = intThisYear;
                intNextMonth = 2;
                break;
        case 12:
                intPrevYear = intThisYear;
                intPrevMonth = 11;
                intNextYear = intThisYear + 1;
                intNextMonth = 1;
                break;
        default:
                intPrevYear = intThisYear;
                intPrevMonth = parseInt(intThisMonth,10) - 1;
                intNextYear = intThisYear;
                intNextMonth = parseInt(intThisMonth,10) + 1;
                break;
    }
    intPPyear = intThisYear-1
    intNNyear = intThisYear+1
    NowThisYear = datToday.getFullYear();                                    // 현재 년
    NowThisMonth = datToday.getMonth()+1;                                    // 현재 월
    NowThisDay = datToday.getDate();                                            // 현재 일
    
    datFirstDay = new Date(intThisYear, intThisMonth-1, 1);            // 현재 달의 1일로 날자 객체 생성(월은 0부터 11까지의 정수(1월부터 12월))
    intFirstWeekday = datFirstDay.getDay();                                    // 현재 달 1일의 요일을 구함 (0:일요일, 1:월요일)
    //intSecondWeekday = intFirstWeekday;
    intThirdWeekday = intFirstWeekday;
    
    datThisDay = new Date(intThisYear, intThisMonth, intThisDay);    // 넘어온 값의 날자 생성
    //intThisWeekday = datThisDay.getDay();                                        // 넘어온 날자의 주 요일
    
    intPrintDay = 1;                                                                // 달의 시작 일자
    secondPrintDay = 1;
    thirdPrintDay = 1;
    Stop_Flag = 0
    
    if ((intThisYear % 4)==0) {                                                // 4년마다 1번이면 (사로나누어 떨어지면)
        if ((intThisYear % 100) == 0) {
            if ((intThisYear % 400) == 0) {
                Months_day[2] = 29;
            }
        } else {
            Months_day[2] = 29;
        }
    }
    intLastDay = Months_day[intThisMonth];                        // 마지막 일자 구함
    Cal_HTML = "<html><body>";
    Cal_HTML += "<form name='calendar'>";
    Cal_HTML += "<table id=Cal_Table border=0 bgcolor='#f4f4f4' cellpadding=1 cellspacing=1 width=100% onmouseover='parent.doOver(window.event.srcElement)' onmouseout='parent.doOut(window.event.srcElement)' style='font-size : 12;font-family:굴림;'>";
    Cal_HTML += "<tr height='35' align=center bgcolor='#f4f4f4'>";
    Cal_HTML += "<td colspan=7 align=center>";
    Cal_HTML += "    <select name='selYear' STYLE='font-size:11;' OnChange='parent.fnChangeYearD(calendar.selYear.value, calendar.selMonth.value, "+intThisDay+")';>";
    for (var optYear=(intThisYear-2); optYear<(intThisYear+2); optYear++) {
        Cal_HTML += "        <option value='"+optYear+"' ";
        if (optYear == intThisYear) Cal_HTML += " selected>\n";
        else Cal_HTML += ">\n";
        Cal_HTML += optYear+"</option>\n";
    }
    Cal_HTML += "    </select>";
    Cal_HTML += "   <a style='cursor:hand;' OnClick='parent.Show_cal("+intPrevYear+","+intPrevMonth+","+intThisDay+");'>◀</a> ";
    Cal_HTML += "<select name='selMonth' STYLE='font-size:11;' OnChange='parent.fnChangeYearD(calendar.selYear.value, calendar.selMonth.value, "+intThisDay+")';>";
    for (var i=1; i<13; i++) {    
        Cal_HTML += "        <option value='"+Month_Val[i-1]+"' ";
        if (intThisMonth == parseInt(Month_Val[i-1],10)) Cal_HTML += " selected>\n";
        else Cal_HTML += ">\n";
        Cal_HTML += Month_Val[i-1]+"</option>\n";
    }
    Cal_HTML += "    </select> ";
    Cal_HTML += "<a style='cursor:hand;' OnClick='parent.Show_cal("+intNextYear+","+intNextMonth+","+intThisDay+");'>▶</a>";
    Cal_HTML += "</td></tr>";
    Cal_HTML += "<tr align=center bgcolor='#87B3D6' style='color:#2065DA;' height='25'>";
    Cal_HTML += "    <td style='padding-top:3px;' width='24'><font color=black>일</font></td>";
    Cal_HTML += "    <td style='padding-top:3px;' width='24'><font color=black>월</font></td>";
    Cal_HTML += "    <td style='padding-top:3px;' width='24'><font color=black>화</font></td>";
    Cal_HTML += "    <td style='padding-top:3px;' width='24'><font color=black>수</font></td>";
    Cal_HTML += "    <td style='padding-top:3px;' width='24'><font color=black>목</font></td>";
    Cal_HTML += "    <td style='padding-top:3px;' width='24'><font color=black>금</font></td>";
    Cal_HTML += "    <td style='padding-top:3px;' width='24'><font color=black>토</font></td>";
    Cal_HTML += "</tr>";
        
    for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) {    // 주단위 루프 시작, 최대 6주
        Cal_HTML += "<tr height='24' align=right bgcolor='white'>"
        for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {    // 요일단위 루프 시작, 일요일 부터
            if (intThirdWeekday > 0) {                                            // 첫주 시작일이 1보다 크면
                Cal_HTML += "<td>";
                intThirdWeekday--;
            } else {
                if (thirdPrintDay > intLastDay) {                                // 입력 날짝 월말보다 크다면
                    Cal_HTML += "<td>";
                } else {                                                                // 입력날짜가 현재월에 해당 되면
                    Cal_HTML += "<td onClick=parent.Calendar_Click(this); title="+intThisYear+"-"+day2(intThisMonth).toString()+"-"+day2(thirdPrintDay).toString()+" style=\"cursor:Hand;border:1px solid white;";
                    if (intThisYear == NowThisYear && intThisMonth==NowThisMonth && thirdPrintDay==intThisDay) {
                        Cal_HTML += "background-color:#C6F2ED;";
                    }
                    
                    switch(intLoopDay) {
                        case 1:                                                            // 일요일이면 빨간 색으로
                            Cal_HTML += "color:red;"
                            break;
                        //case 7:
                        //    Cal_HTML += "color:blue;"
                        //    break;
                        default:
                            Cal_HTML += "color:black;"
                            break;
                    }
                    Cal_HTML += "\">"+thirdPrintDay;
                }
                thirdPrintDay++;
                
                if (thirdPrintDay > intLastDay) {                                // 만약 날짜 값이 월말 값보다 크면 루프문 탈출
                    Stop_Flag = 1;
                }
            }
            Cal_HTML += "</td>";
        }
        Cal_HTML += "</tr>";
        if (Stop_Flag==1) break;
    }
    Cal_HTML += "</table></form></body></html>

 


<script language='javascript' src='./calendar.js'></script>
<input type="text" name="startdate" value='<?=$startdate?>' maxlength="10" size="10" class=input style="text-align:center;">
<input type="button" name="cmdStartDate" value="달력" class=button tabindex=11 onclick="Calendar_D(document.all.startdate)">

 

안녕하세요.

ie에서는 클릭시 달력이 정상 적으로 표시되지만

edge나 chome에서는

245번째줄에서

var oPopBody = oPopup.document.body;

 

아래와 같은 에러가 표시됩니다.

혹시 document를 대체할수 있을까요?

typeerror : cannot read properties of undefined (reading 'document')

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,406
© SIRSOFT
현재 페이지 제일 처음으로