자바스크립트 코드 관련 질문입니다.
글쓴이: alfhd00 / 작성시간: 금, 2015/12/11 - 7:29오전
<html> <head> <script> <!-- //calendar, timer, 살아온 날, 몇 년 몇 월 input, 윤년 판단 /*function lifeday(form){ var dayperM = 1000 * 60 * 60 * 24; var hourperM = 1000 * 60 * 60; var minuteperM = 1000 * 60; var secondperM = 1000; birth = new Date(form.birthY.value, form.birthM.value, form.birthD.value, form.birthH.value, form.birthMi.value); now = new Date(form.year.value, form.month.value); var interval = now.getTime() - birth.getTime(); var interval_re = Math.floor(interval/dayperM); var string = interval_re + "일 "; interval -= interval_re*dayperM; interval_re = Math.floor(interval/hourperM); string += interval_re + "시간 "; interval -= interval_re*hourperM; interval_re = Math.floor(interval/minuteperM); string += interval_re + "분 "; interval -= interval_re*minuteperM; interval_re = Math.floor(interval/secondperM); string += interval_re + "초"; return string; } */ function leapYear(year){ if(year/4 ==0 && year/100 != 0 || year/400 == 0) return 29; else return 28; } function timer(my){ now = new Date(); var str = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds(); my.t0.value = str; setTimeout('timer(my)', 1000); } function calendar(form){ inputD = new Date(); inputD.setFullYear(form.year.value); inputD.setMonth(form.month.value-1); lastD = new Array("31", "30","31", "30", "31", "30", "31", "31", "30", "31", "30", "31"); firstD = new Date(inputD.getFullYear(), inputD.getMonth(), 1); day = new Array("SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"); var num=1, i, j; lastD[1] = leapYear(inputD.getFullYear()); var dayperM = 1000 * 60 * 60 * 24; var hourperM = 1000 * 60 * 60; var minuteperM = 1000 * 60; var secondperM = 1000; birth = new Date(form.birthY.value, form.birthM.value, form.birthD.value, form.birthH.value, form.birthMi.value); now = new Date(form.year.value, form.month.value); var interval = now.getTime() - birth.getTime(); var interval_re = Math.floor(interval/dayperM); var string = interval_re + "일 "; interval -= interval_re*dayperM; interval_re = Math.floor(interval/hourperM); string += interval_re + "시간 "; interval -= interval_re*hourperM; interval_re = Math.floor(interval/minuteperM); string += interval_re + "분 "; interval -= interval_re*minuteperM; interval_re = Math.floor(interval/secondperM); string += interval_re + "초"; document.write(inputD.getFullYear() + "년 " + (inputD.getMonth()+1) + "월"); document.write("<table border=1 align=center width=300 height=250><tr>"); for(i=0; i<7; i++){ document.write("<td>" + day[i] + "</td>"); } document.write("</tr>"); for(i=0; i<5; i++){ document.write("<tr>"); for(j=0; j<7; j++){ if(i==0 && j<firstD.getDay())document.write("<td></td>"); else if(num==inputD.getDate()){ document.write("<td>" + num + "<br>"); document.write("<form name=my><input type=text name=t0>"+ setTimeout('timer(my)', 1000) + "</form>"); document.write(string + "</td>"); num++; } else{ document.write("<td>" + num + "</td>"); num++; } if(num>lastD[inputD.getMonth()]) break; } document.write("</tr>"); if(num>lastD[inputD.getMonth()]) break; } document.write("</table>"); } //--> </script> </head> <body> <form name = "form"> Year input : <input type="text" name="year"> <br> Month input : <input type="text" name="month"><br> input your birthday data. <br> Year : <input type="text" name="birthY"><br> Month : <input type="text" name="birthM"><br> Date : <input type="text" name="birthD"><br> Time : <input type="text" name="birthH"><br> Minute : <input type="text" name="birthMi"><br> <input type="button" value="enter" onclick="calendar(form)"> </form> </body> </html>
원래 태어난 날부터 현재 시기까지 내가 얼마나 살았는지 계산해주는 함수(lifeday)를 정의했습니다. 그런데
크롬에서 가능한데 explorer에서는 권한이 없다고 ...뜨길래 일단 calendar함수 안에 넣었습니다.
1. 이 코드를 크롬에서 하면 setTimeout이 잘 작동되는데 explorer로 하면 timer가 아예 작동이 안됩니다. 이유를 알고 싶습니다. 그리고 timer함수를 디버깅 체크했는데 그냥 넘어갑니다.
2. 크롬이나 explorer나 seTimeout 메소드 호출 후에 밖에 없는데 '1'이라는 숫자가 뜹니다. 해당 숫자가 어디에서 발생된 건지 알고 싶습니다.
3. lifeday 함수를 통해 살아온 날을 계산하려고 하면 (explorer로 실행할 때) birth라는 새로운 객체를 생성하는데에서 권한이 없다고 말합니다. 왜 그런것인지 알고 싶습니다.
Forums:
document.write() 할때. 뭔가 지워졌나봅니다.
이 예제소스를 참고해보시기 바랍니다.
시간과 Object용으로 테스트해서.
브라우저마다 CSS 레이어의 크기가 다를 수 있으니 주의하시기 바랍니다.
타이머를 사용하신후에는 해제가 필요합니다.
clearInterval( timer_id_pop );
이제. AJAX와 POST. MySQL 을 사용하면. 홈페이지 구조가 되겠네요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기