RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'HTML'에 해당되는 글 48
HTML  2007/07/19 17:40

TABLE FRAME 속성

[Syntax]

<table frame="void">
참고로 border를 1이상으로 사용해야 함.

 

[아래 예제 소스]
<table width="100%" border="1" cellspacing="0" cellpadding="2" frame="xxxxxx">
.......
</table>
void : 바깥쪽 전체 테두리 지우기
FRAME Attribute Property
     
     
above : 윗쪽 테두리만 보이기
FRAME Attribute Property
     
     
below : 아래쪽 테두리만 보이기
FRAME Attribute Property
     
     
border : 전체 테두리 보이기
FRAME Attribute Property
     
     
box : 전체 테두리 보이기
FRAME Attribute Property
     
     
hsides : 윗쪽, 아래쪽 테두리만 보이기
FRAME Attribute Property
     
     
lhs : 왼쪽 테두리만 보이기
FRAME Attribute Property
     
     
rhs : 오른쪽 테두리만 보이기
FRAME Attribute Property
     
     
vsides : 왼쪽, 오른쪽 테두리만 보이기
FRAME Attribute Property

   
     
↓ 아래는 응용해서 만들어본 테이블입니다.
FRAME Attribute Property
1
2 3
     
FRAME Attribute Property

   
     
FRAME Attribute Property

   
     
2007/07/19 17:40 2007/07/19 17:40
이 글에는 트랙백을 보낼 수 없습니다


// 정규식 짜르귀 ~
preg_replace : function( array_pattern, array_pattern_replace, string ){

      for (var i=0 , new_string = new String(string) , stop = array_pattern.length; i < stop; i++)
        new_string = new_string.replace( new RegExp(array_pattern[i], "gi") , array_pattern_replace[i] );

      return new_string;
}

2007/07/03 14:20 2007/07/03 14:20
이 글에는 트랙백을 보낼 수 없습니다
HTML  2007/05/25 14:46

메타 태그(Meta Tag)란?

이름에서 짐작할 수 있듯 (x)html 태그 중 하나이고 '메타', 즉, 문서 그 자체를 설명하는 태그를 메타 태그라 합니다. 일반 (x)html 태그는 문서 내용물을 어떻게 보이게 하는가를 규정하기 위해 마크 업을 합니다. 이와 달리 메타 태그는 (x)html 문서가 어떤 내용을 담고 있고, 그 문서의 핵심어는 무엇이며, 누가 만들었는지, 문자 세트는 어떤 것을 사용하는지 등의 메타 정보를 담고 있습니다.

메타 태그는,

  1. "empty tag" 중의 하나입니다. <b>볼드체</b>처럼 열고 닫는 태그가 다 있는것이 아니라 닫는 태그는 없습니다. 즉, </meta>라는 태그는 없습니다. 그러므로 xhtml의 경우 <meta ... />처럼 자체 내에서 /로 닫으면서 마무리되어야 합니다.
  2. 반드시 <head>~</head> 사이에 놓입니다.

메타 태그의 형태

메타 태그는,

<meta 속성="값" content="내용물" />

의 형태를 갖습니다.

예를 들면,

  • <meta name="author" content="이명헌" />
  • <meta name="title" content="메타 태그란?" />
  • <meta http-equiv="refresh" content="5;url=http://www.abc.com/" />

"속성 = 값", 그리고 "content = 내용물"입니다. 자주 들르는 웹 페이지의 '소스 보기'를 해보면 문서 서두에 있는 메타 태그를 확인해 볼 수 있습니다. 지금 이 페이지를 확인해 볼 수도 있습니다.

메타 태그의 용도

기본적으로 (x)html 문서를 만들 때는 항상 메타 태그를 써주는 것이 좋습니다. 그 문서가 어떤 내용을 담고 있는지, 키워드는 무엇인지를 요약해 둔 내용이 있다면 검색을 하는 데 많은 도움이 되기 때문입니다. 대개 다음의 용도로 많이 쓰입니다.

검색 엔진에 등록할 때


<meta name="keywords" content="코미디 역사 코메디 발생 기원 희극" />
<meta name="description" content="코미디의 역사를 소개하는 글" />

예를 들어, 코미디의 역사를 소개하는 웹페이지라면 위와 같이 그 문서의 키워드인 '코미디', '역사' 같은 단어를 "keywords" 메타 태그에 담고 '코미디의 역사를 소개하는 글'이라는 (x)html 문서 소개를 "description" 메타 태그에 담습니다. 이들 메타 태그를 그 (x)html 문서의 <head>~</head> 사이에 넣어 두는 것입니다. 검색 엔진이 웹 문서를 검색할 때 이들 "keywords", "description" 메타 태그를 통해 검색하는 경우가 있기 때문입니다. 검색엔진에서 검색어를 입력하고 엔터를 치면 검색엔진은 입력한 검색어와 같은 단어가 keywords, description 메타 태그 내에 등장하는 문서를 찾아내서 검색 결과를 통해 보여줍니다.

성인물을 다루는 사이트의 경우 메타 태그를 남용해서 keywords에 sex 관련 단어를 많이 넣어 두기도 합니다. 그렇게 하면 sex 관련 단어 검색 시 자신의 페이지가 결과로 뜰 것이라고 믿기 때문입니다. 하지만 이제는 이런 용도의 메타 테그 활용은 거의 의미가 없습니다. 메타 태그를 상업적으로 '악용'한 페이지가 너무 많아서 제대로 된 검색 결과를 얻지 못한다는 점을 깨달은 검색엔진 회사들이(특히 구글처럼 링크 구조(Link structure) 기반의 자동화된 검색엔진) 메타 태그를 거의 무시하고 있기 때문입니다.

그런 한계에도 불구하고 메타 태그가 없는 것보다는 있는 쪽이 검색에 더 도움이 되므로 적절히 사용하는 것이 좋습니다. 이런 점은 주의해야 합니다. description 메타 태그 내에 페이지 요약을 넣을 때 가급적 20단어를 넘지 않아야 합니다. 검색 엔진은 description을 적당한 크기까지만 읽고 나머지는 임의로 무시합니다. 그리고, 검색 엔진은 메타 태그와 함께 웹 페이지의 제목(<title>에 담긴) 역시 중요하게 취급합니다. (x)html 문서 제목을 결정할 때 가급적 신중하게 하세요. URL도 마찬가지입니다. 한글 싸이트와 직접적 연관은 없긴 하지만 keywords 메타 태그의 경우 대소문자를 별개로 취급하기 때문에 구분해서 실을수록 좋습니다.

검색 엔진 피하기

검색엔진 회사가 사용하는 웹 크롤러(Web crawler)는 웹 상의 여러 문서들을 긁어서 문서를 적당한 형태로 저장합니다. 이 때 keywordsdescription 등이나 문서 길이, url, 제목 등의 메타 정보를 따로 관리하며 저장하지만 (x)html 문서 자체도 모두 긁어서 저장합니다.

일반적인 램보다 속도가 훨씬 빠른 캐쉬 메모리(cache memory)가 자주 하는 작업을 저장하고 있다가 cpu에서 요청이 오면 즉각 보내서 컴퓨터 작업 속도를 늘려주는 것처럼, 웹 크롤러가 긁어 온 웹 페이지 내용 역시 검색엔진의 모처에 캐쉬 형태로 저장해서 매 검색 시마다 웹 전체를 뒤지지 않고 저장된 캐쉬를 검색해서 빠른 속도로 검색 결과를 보여줍니다.(구글의 '캐쉬'가 그것입니다.) 검색엔진 회사는 이렇게 웹 페이지를 긁어 오는 작업을 정기적으로 하고 있으며 크롤링을 자주 하는 곳일수록 캐쉬 내에 최근 내용이 저장되어 있으므로 보다 최신의 검색결과를 보여줍니다.

문제는 웹에 이런 웹 크롤러(web crawler)들이 아주 많이 떠돌아 다니고 있어서 외부에 노출하고 싶지 않은 문서까지 공개되고 심지어 저장될 수 있다는 사실입니다. 그것을 해결하는 것이 robots라는 메타 태그입니다.

<meta name="robots" content="noindex, nofollow" />

name= 자리에 robots가 들어가 있고 content에는 noindex, nofollow라고 되어 있습니다. 이것에 대해 자세하게 알아 보기 전에 웹 크롤러가 어떻게 동작하는지 간단하게 알아 봅시다. 웹 크롤러가 최초 웹 서버에 도착하면 그 웹 서버 문서 디렉토리의 최상위(/)에 "robots.txt" 라는 문서가 있는지 점검 합니다. 만약 robots.txt라는 문서가 있고, 그 문서 안에


User-agent: *
Disallow: /

라는 내용이 담겨 있다면 /(문서 루트 디렉토리) 밑으로는 disallow, 즉, 허락하지 않는 것이므로 그 사이트의 문서를 긁지 않고 떠납니다.

그런데 이것은 실용성이 떨어집니다. 감추고 싶은 문서도 있긴 하지만 검색 엔진에 올려 두고 싶은 문서가 훨씬 더 많을 수 있으니까요. 제일 상위인 / 디렉토리에서 웹 크롤러를 차단하는 것은 사이트 전체를 건너 뛰게 하므로 실용성이 없습니다. 또 하나 문제가 되는 것은 독립적인 웹 서버를 사용하지 않고 웹호스팅 서비스나 계정을 사용하고 있는 경우 "Document Root"에 robots.txt 문서를 넣어두기는 힘들다는 점입니다.

그럴 때 사용하는 것이 robots 메타 태그입니다. robots 메타 태그는 웹크롤러가 긁어갈 것인지 말 것인지를 개별 문서 별로 설정할 수 있습니다. 사용법은 간단합니다. robots 메타 태그의 contentindex이면 그 페이지는 긁어 갑니다. contentfollow면 그 페이지에 나온 모든 링크를 찾아 가서 링크된 문서도 긁어 갑니다. noindex면 그 페이지는 긁어가지 않습니다. nofollow면 링크를 확인해서 긁어가는 것을 건너 뜁니다.

즉, 다음과 같은 네 가지의 조합이 나옵니다. 목적에 맞게 사용하면 됩니다.


<meta name="robots" content="index,follow" />
: 이 문서도 긁어가고 링크된 문서도 긁어감.
<meta name="robots" content="noindex,follow" />
: 이 문서는 긁어가지 말고 링크된 문서만 긁어감.
<meta name="robots" content="index,nofollow" />
: 이 문서는 긁어가되, 링크는 무시함.
<meta name="robots" content="noindex,nofollow" />
: 이 문서도 긁지 않고, 링크도 무시함.

웹 문서 주소가 바뀐 경우

<meta http-equiv="refresh" content="5;url=http://www.abc.com/" />

이런 것 많이 보았을 것입니다.

"이 페이지는 10초 후에 자동으로 새 페이지로 이동합니다. 아무 변화가 없으면 밑의 링크를 클릭하세요."

이것을 할 때 메타 태그를 사용합니다. 위 코드에서 content= 다음에 몇 초만에 넘어가게 할 것인가 숫자를 적고 콜론(;)을 한 다음 url=에 이동할 페이지의 url을 적으면 됩니다. 간단하죠? 이 한줄을 예전 (x)html 문서 <head>~</head> 사이에 넣어 두면 지정된 시간 경과후 새 url로 자동으로 넘어갑니다. 시간은 0.1, 0.5등 1초 미만도 가능합니다. 즉시 넘어 가게 할 때는 1초 미만으로 하면 됩니다.

만약 url을 원래 페이지와 똑같이 해 놓으면 어떻게 될까요? 몇 초마다 그 페이지가 '다시보기'(reload)됩니다. 그럴 필요가 있을 지는 모르겠지만 원한다면 그렇게 사용할 수도 있습니다.

한글 페이지라는 사실을 알릴 때

<meta http-equiv="content-type" content="text/html; charset=euc-kr" />

웹 페이지를 디스플레이 하는 문자 세트(character set)를 지정할 때 메타 태그를 사용합니다. 사용자 웹 브라우져에서 인코딩 방식을 특별히 한글로 해놓지 않더라도 위와 같은 메타 태그가 들어있는 웹 페이지는 한글 문자 세트를 이용해서 한글로 보여집니다. 이 메타 태그 역시 필수적으로 넣어두면 좋습니다. 특히 외국에서 영문 웹 브라우져로 접속하는 사람들을 위해서입니다. 영어 웹 사이트를 위주로 써핑하는 사람의 경우 브라우져 문자 세트를 영어로 해 놓고 있을 가능성이 높습니다.

http-equiv란?

위에서 http-equiv라는 것이 나왔는데 이게 무엇일까요? http로 나누는 대화라는 글에서 http 헤더에 관해 자세하게 설명할 때, 서버가 클라이언트로부터 온 http request를 접수한 다음 http response를 다시 웹 브라우져로 보내 준다는 얘기가 있었습니다. 그 http response의 헤더를 각 (x)html 문서 별로 따로 설정할 수 있는 것이 http-equiv 메타 태그라고 이해하면 됩니다.

일반적인 순서는 다음과 같습니다.

사용자가 특정 문서로의 링크를 클릭
--> 웹 브라우져에서 생성된 http request를 웹 서버로 보냄
--> 웹 서버에서 접수한 뒤 http response와 함께 (x)html 파일(또는 그래픽, 싸운드...)을 TCP/IP를 이용해 전달
--> 웹 브라우져에서는 http response에 설정된 대로 전달받은 파일을 염.

이 때 전달받은 파일을 http 리스판스 헤더에 설정된 대로 열면서 개별 (x)html 문서에서 설정해 둔 http-equiv 메타 태그에 있는 내용 역시 써버에서 보낸 http 헤더에 첨가합니다.

<meta http-equiv="content-type" content="text/html; charset=euc-kr" />

라면 웹 서버에서 클라이언트로 보내는 http 헤더에 있는 Content-type 이라는 마임 타입을 설정하는 부분을 http-equiv 메타 태그를 활용해서 개별 문서 별로 설정하는 것입니다.

2007/05/25 14:46 2007/05/25 14:46
이 글에는 트랙백을 보낼 수 없습니다
HTML  2007/05/25 12:36

HTML이나 XHTML문서는 문서 상단에 Document Type Definition을 넣어 문서의 형을 선언하게 된다. 기본적으로 이 DTD에는 문서에서 사용하는 태그나 속성들이 명시되어 있고 Validator는 이 DTD정보를 기본으로 하여 문서의 문법을 검사하게 된다. 모든 마크업 문서는 이 DTD선언을 명시해 주어야만 한다.

DTD의 종류

웹에서 주로 사용하는 DTD는 HTML 4.01과 XHTML 1.0, XHTML 1.1이 있다. XHTML DTD는 HTML의 문법에 XML의 문법 규칙을 적용한 DTD이다. Transitional DTD는 디자인적인 속성이 포함된 DTD이고 Strict DTD는 디자인 적인 속성이 모두 제거된 형식이다. <a>에 target속성을 이용하거나 td에 width, height등의 속성을 사용하기 위해서는 transitional DTD를 사용해야 한다. Frameset DTD는 transitional DTD에 프레임을 사용할 수 있게 프레임 관련된 선언이 포함된 DTD이다.

HTML 4.01 Strict DTD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional DTD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset DTD
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Strict DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1 DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

DTD의 선택 기준

문 서의 DTD를 정하는 것은 특별한 기준이 있는 것은 아니고 전적으로 저자의 선택을 따르게 된다. 문서를 저작함에 있어서 목적과 향후 관리 측면을 고려하여 DTD를 정하면 된다. 예를 들어서 디자인 적인 요소가 필요하고 XML문법을 완벽하게 따라서 운영, 관리가 될 수 없는 페이지라면 XHTML DTD를 선언하는 것은 무의미 하므로 HTML DTD를 선언하여 사용하는 것이 바람직하다.

HTML 4.01 Transitaional이라고 해서 XHTML 1.1보다 못하거나 수준이 낮은, 또는 웹표준이 아니라고 말할 수는 없다. DTD 선택에 제약을 두는 것 보다는 상황에 맞는 DTD를 선택하고 선택한 DTD를 완벽하게 준수하는 것이 더욱 중요하다.

처음 접근하기 쉬운 DTD

웹표준을 처음 접하는 입장에서는 XHTML을 선택 하는 것 보다는 HTML 4.01 Transitional을 선택하고 validation에 신경을 쓰는 것이 더 좋은 선택이다.

mime-type과 DTD

XHTML의 경우 문서의 mime-type이 application/xhtml+xml로 제공이 되어야 한다. XHTML 1.0에서는 하위 호환성을 위해서 text/html로 전송하는 것도 허용하고는 있지만 XHTML1.1은 반드시 application/xhtml+xml로 배포 되어야 한다. 이러한 의미에서 본다면 XHTML보다는 HTML 4.01 Strict가 더 좋은 선택이 될 수도 있다.

2007/05/25 12:36 2007/05/25 12:36
이 글에는 트랙백을 보낼 수 없습니다
HTML  2007/02/07 11:28
TagDescriptionNNIE
Deprecated : 사용이 금지된 비표준 태그로 차기버전의 웹 브라우저에서 지원이 확실치 않음.
NN : Netscape Navigator 가 지원하기 시작한 가장 낮은 브라우저 버전
IE : Internet Explorer 가 지원하기 시작한 가장 낮은 브라우저 버전

레 퍼런스의 태그와 속성 중에서 별표(*)가 붙은 것은 HTML 4.0 이후의 버전에서는 지원 여부가 불확실한 것으로, HTML 공식 문서에서는  Deplecated 판정을 받은 것입니다. 대부분은 스타일 시트를 활성화하기 위해 기존의 프리젠테이션 관련 태그와 속성들이  Deplecated 판정을 받았습니다. 당장 브라우저들이 이들 태그와 속성의 지원을 중단하지는 않겠지만 가급적이면 이들 태그와 속성들은  사용을 줄이는 것이 좋을것 같습니다.
<!--...-->Defines a comment3.03.0
<!DOCTYPE> Defines the document type
<a>사용자가 클릭했을 때 브라우저를 다른 곳으로 이동하게 하는 링크를 만드는데 사용된다.

<a href="url" hame="anchor">...</a>
  • href - 사용자가 링크를 클릭했을 때 부라우저가 이동할 URL을 지정한다.  
  • name - <a> 태그 내에 포함된 요소에 이름을 붙여준다. name 속성으로 지정된 이름은 다른 <a> 태그에서 참조하여  페이지 내의 링크로 사용될수 있다.
3.03.0
<abbr>HTTP나 WWW와 같은 약자(abbrevi-ation)를 표시하기 위해 사용 된다. 현재까지의 브라우저들은 이 태그를 다른 형식으로 보여주지  못한다.6.2
<acronym>WAC(Women's Army Corps), Radar와 같은 두 문자어(Acronym)를 표기하기 위해 사용된다. 현재 까지의 브라우저들은 이  태그를 다른 형식으로 보여주지 못한다.6.24.0
<address>주소나 연락처와 같은 본문 블록을 정의하기 위해 사용된다. <address> 태그 블록 내부에는 다른 HTML 태그를 이용해 블록의  포맷을 변경시킬수 있다. 대개 <address> 태그는 본문 블록을 이탤릭체로 표기하며 들여쓰기는 하지 않는다.4.04.0
<applet><applet> 태그는 지정된 자바 애플릿을 실행하기 위해 사용된다. 자바 애플릿을 지원하지 않는 브라우저는  <applet>...</applet> 태그 블록을 무시한다. 애플릿이 실행하는 데 필요한 정보를 제공하는데는  <param> 태그가 함께 사용된다.2.03.0
<area>

<area> 태그는 이미지의 영역을 특정한 링크와 연결하기 위해 사용된다. 사용자가 <area> 태그로 지정된 영역을 클릭하면 href 속성으로  지정된 URL로 이동한다.

<area alt="대체 문자열" coords="좌표" href="URL" nohref shape="모양">

  • alt - <area> 태그를 지원하지 않는 브라우저에서 대체하여 표시할 문자열을 지정한다.  
  • coords - 영역의 좌표를 픽셀 단 위로 지정한다. 영역이 사각형(rect)일 경우 이 속성은 "왼쪽, 상단, 오른쪽, 하단" 형식이  되며, 원형(circle)일 경우 "중심x, 중심y, 반지름"이 된다. 다각형(poly)일 경우에는 다각형의 각 꼭지점을 차례로 지정한다.  
  • href - <area> 태그로 지정된 영역을 클릭했을 때 브라우저가 이동할 URL을 지정한다.  
  • nohref - 이 속성이 포함되어 있으면 지정된 영역이 링크와 연결되어 있지 않음을 의미한다.  
  • shape - 영역의 모양을 지정한다. 사용할 수 있는 값으로는 rect, circle, poly와 default가 있다.
3.03.0
<b> * 블록에 포함된 텍스트를 볼드체로 나타나게 한다.3.03.0
<base>문 서에 포함된 다른 모든 href 속성의 기본 URL을 지정한다. <base> 태그는 문서에 포함된 절대 URL을 손쉽게 다른 것으로 옮기기  위해 사용된다. 만약 문서에 포함된 모든 절대 URL을 수정하려면 <base> 태그의 href 속성만 바꾸어 주면 된다. target 속성은  목적지 윈도우를 지정한다. <base> 태그는 <head> 태그 블록 내부에서만 사용이 허용된다.

<base href="URL" target="목적지 윈도우">

3.03.0
<basefont>Deprecated. Defines a base font3.03.0
<bdo>Defines the direction of text display6.25.0
<big>텍스트의 크기를 한 단계 증가 시킨다. 반대의 기능을 하는 태그로 <small>이 있다.3.03.0
<blockquote>본 문에 인용된 문구를 넣을 때 사용한다. <blockquote> 태그로 지정된 블록은 오른쪽으로 한 단계 들여쓰기 되며 <p> 태그와 마찬가지로  블록의 시작과 끝이 다른 문단과는 분리된다. <blockquote> 태그는 문단의 구조를 정의하는 태그이기 때문에 논리적으로는 입력양식이나  테이블, 리스트와 같은 태그를 포함해서는 안된다.3.03.0
<body>웹페이지의 모든 본문을 포함한다. 또한, 위의 몇가지 속성으로 본문의 속성을 지정하기도 한다.

<body bgcolor="칼러" background="URL" text="컬러" link="컬러" alink="컬러"  vlink="컬러">...</body>

  • bgcolor* - 웹페이지의 배경 컬러를 지정한다.  
  • background* - 웹페이지의 배경을 장식할 이미지의 URL을 지정한다. GIFJPEG의 두 가지 파일 형식을 사용할 수 있다.  
  • TEXT* - 본문의 컬러를 지정한다.  
  • link* - 일반적인 상태의 링크 컬러를 지정한다.  
  • alink* - 활성화 된(클릭하고 있는) 상태의 링크 컬러를 지정한다.  
  • vlink* - 이미 방문한 적이 있는 링크의 컬러를 지정한다.
3.03.0
<br>HTML 문서에 라인 끊기를 넣어준다. 즉, 본문의 줄 바꾸기를 한다. clear 속성에는 left나 right, all, 또는 none을  지정할 수 있는데, 이미지의 주위를 감싸는 텍스트의 위치를 지정하기 위하여 사용한다.


<br clear="옵션">

3.03.0
<button>Defines a push button6.24.0
<caption>테이블의 열이나 행의 앞에 헤드나 캡션을 넣어주는데 사용된다. <caption> 태그는 반드시 <table> 태그 블 록에 포함되어야 한다. 이  태그의 align 속성은 두 가지 용도를 가지고 있다. 첫째로 top이나 bottom을 지정하면 캡션을 행의 상단이나 하단에 놓을지를 결정할 수  있고 left나 right를 지정하여 캡션 문자열을 왼쪽이나 오른쪽으로 지정할 수 있다. 디폴트 정렬방식은 중앙(center)이다.

<caption align="정렬 방식">...</caption>

3.03.0
<center>Deprecated. Defines centered text3.03.0
<cite>인용된 문구를 표시하기 위해 사용된다. 대부분의 브라우저는 <cite> 태그가 이용된 문구를 이탤릭 글꼴로 표시해 준다.3.03.0
<code>보통 인용된 짧은 컴퓨터 프로그래밍 언어를 표시하기 위해 사용된다. 여러 라인의 코드를 표기하려면 <pre> 태그를 사용하는것이 좋다.  브라우저는 <code> 태그가 이용된 문구를 고정된 글꼴로 표시해 준다.3.03.0
<col>Defines attributes for table columns 3.0
<colgroup>Defines groups of table columns 3.0
<dd>정의 리스트를 만들 때 리스트 항목을 정의하는 역할을 한다. 정의 리스트는 목차나 용어 설명과 같은 형식의 리스트를 만드는 데 적합하다.3.03.0
<del>Defines deleted text6.24.0
<dir>Deprecated. Defines a directory list3.03.0
<div><div> 태그와 <span> 태그는 id나 class 속성과 함께 사용되어 문단의 구조를 정의 한다. HTML 4.0 이전에는 큰 용도가  없었으나 이제는 스타일 시트와 결합되어 다양한 용도로 응용될수 있다. 보통 <span> 태그는 인라인 요소에, <div> 태그는 블록 레벨  요소에 사용된다.3.03.0
<dfn>Defines a definition term 3.0
<dl>dd 태그와 함께 사용되어 정의 리스트를 만드는데 사용된다.3.03.0
<dt>정의 리스트에 사용되어 정의 용어(definition term)를 정의한다. 모든 <dt> 태그는 반드시 <dd> 태그와 함께 사용되어야 한다.  <dd> 태그는 정의 설명(definition description)을 의미한다.3.03.0
<em>지정한 블록을 강조해 줄것을 요구한다. 하지만 어떻게 강조할지는 브라우즈의 몫이다. 대부분의 브라우즈는 <em> 태그 블록의 본문을 이탤릭체로  표시한다.3.03.0
<fieldset>Defines a fieldset6.24.0
<font>Deprecated. Defines the font face, size, and color of text3.03.0
<form>사용자로 부터 정보를 입력 받고 이 정보를 서버나 전자메일 주소로 보낼수 있는 방법을 제공한다. 입력 양식은 텍스트 입 력 필드와 체크 박스,  라디오 버튼, 드롭다운 리스트, 버튼 등을 포함할 수 있다. 모든 입력 양식에는 반드시 submit 버튼이 있어야 하는데, 이 버튼을 클릭하는  순간 입력 양식에 입력된 정보가 서버나 전자 메일 주소로 전송된다.3.03.0
<frame>frame 태그는 프레임을 나눌 때 한 프레임의 특성을 지정하는 데 사용된다.

<frame name="프레임 이름" marginwidth="프레임 너비" marginheight="프레임 높이" noresize  scrolling="yes| no| auto" src="URL">

  • name - 프레임의 이름을 지정 한다. 이 이름은 <A> 태그의 target 속성의 값에 사용된다.  
  • marginwidth - 프레임 왼쪽과 오른쪽의 여백을 지정한다. 이 속성이 지정되지 않으면 브라우저가 여백의 너비를 기본값으로 결정하게  된다.  
  • marginheight - 프레임 상단과 하단의 여백을 지정한다. 이 속성이 지정되지 않으면 브라우저가 여백의 너비를 기본 값으로  결정하게 된다.  
  • noresize - 이 속성이 포함되어 있으면 사용자가 프레임 크기를 조정할 수 없게 된다. 만약 이 속성이 포함되어 있지 않으면  사용자가 프레임의 경계선을 드레그 하여 프레임의 크기를 조정할 수 있다.  
  • scrolling - 스크롤 바를 표시할지를 결정한다. yes는 항상 표시하며, no는 표시하지 않는다. auto는 정보량이 화면의  한페이지를 넘어 가면 자동으로 스크롤바를 표시한다.  
  • src - 프레임에 보여질 웹페이지의 URL을 지정한다.
3.03.0
<frameset>브라우저 윈 도우를 별도로 작동하는 여러개의 윈도우(프레임)로 나누는데 사용된다. 각 프레임의 특성은 <frame> 태그로 지정한다.  <frameset> 태그는 <body> 태그와 함께 사용될 수 없다. 즉, <frameset> 태그를 사용할 때는 <body> 태그 대신  사용된다.

<frameset cols="값의 리스트" rows="값의 리스트">...</frameset>

  • cols - 윈도우의 행을 몇개의 프레임으로 나눌것인지를 결정하고 각의 프레임에 크기를 지정한다. 값은 콤마(,)로 분리된 숫자의  리스트이며, 프레임의 크기를 지정한다.  
  • rows - 윈도우의 열을 몇개의 프레임으로 나눌것인지를 결정하고 각의 프레임에 크기를 지정한다. 값은 콤마(,)로 분리된 숫자의  리스트이며, 프레임의 크기를 지정한다.
3.03.0
<h1> to <h6>h1~h6까지의 여섯 가지 태그는 본문과 구별되는 헤딩(제목)을 표기하기 위하여 사용된다. 헤딩은 다른 본문과는 구별되도록 문단의 상단과 하단이  분리 되며, 볼드체를 사용해 다른 본문 보다는 크게 나타난다. <h1>은 가장 큰 글꼴을 사용하며, <h6>은 가장 작은 글꼴을 사용한다.

<h1 align="left| right| center">...</h1>

  • align* - 헤드가 정렬되는 방법을 결정한다. left나 right, center의 세 가지 값중의 하나를 선택할 수 있다.
3.03.0
<head>웹페이지에 직접 영향을 주는 태그는 아니지만 웹페이지 전체에 대한 몇가지 정보를 지정하는 데 사용된다. 특히, <title>과 <meta>  태그는 <head> 태그 블록에 포함 되어야 한다. 대부분의 웹프로그래머들은 자신들의 자바 스크립트나 VB 스크립트 함수가 본문이 디스플레이  되기전에 선언되도록 <HEAD> 태그 블록에 정의 한다.3.03.0
<hr><hr> 태그는 웹페이지에 음영 처리된 수평 막대(horizontal ruler)를 그리는 데 사용된다.

<hr align="정렬 방식" noshade size="두께" width="너비">

  • align* - 수평 막대가 정렬되는 방식을 지정한다. left, right, center 중 하나를 선택한다.  
  • noshade - 만약 이 속성이 포함되어 있으면 임체효과를 사용하지 않고 단순한 형태의 평면 막대를 보여준다.  
  • size - 수평 막대의 두께를 픽셀 단위로 지정한다.  
  • width - 수평 막대의 너비를 지정한다. 부라우저 윈도우에 대한 백분율로 지정하거나, 픽셀 단위로 지정할수 있다.
3.03.0
<html>html 태그는 다른 모든 태그를 감싸는 태그로, HTML 문서의 시작과 끝에 놓인다.3.03.0
<i> * 블록에 포함된 텍스트를 볼드체로 나타나게 한다.3.03.0
<iframe>Defines an inline sub window (frame)6.04.0
<img><img> 태그는 웹페이지에 이미지 파일을 추가하기 위해 사용된다. width 속성과 height 속성은 이미지의 크기를 변경하는 데도 사용할  수 있다. 예를 들어 100 x 100 크기의 이미지가 있다고 할 때, width=200 height=200 형식을 사용하면 이미지가 두배로  커지게 된다. 이미지의 크기를 변경하지 않더라도 width와 height의 속성은 포함시켜 주는것이 좋다. 왜냐하면, 요즈음의 브라우저들은  width와 height 속성에 지정된 값으로 이미지가 차지할 영역을 미리 할당하므로 나머지 본문을 더욱 빨리 그려줄 수 있기 때문이다.

<img align="정렬 방식" alt="대체 문자열" border="경계선의 두께" width="이미지의 넓이" height="이미지의  높이" src="이미지 파일의 URL" hspace="이미지 좌우측의 공백" vspace="이미지 상하단의 공백" usemap>

  • align - left, right, top, middle, bottom 중의 한가지 값이 될수 있으며, left나 right가 지정되면  이미지와 좌나 우에 텍스트가 위치하며 top, middle, bottom 중의 하나가 지정되면 이미지와 같은 라인에 놓이는 수직 정렬방식을  결정한다.  
  • alt - 이미지를 나타낼수 없는 부라우저에서 이미지 대신 보여줄 문자열을 지정한다. 또, 표시된 이미지에 마우스를 대면 그 문자열이  나타난다.  
  • border - 이미지의 테두리 두께를 지정한다. 디폴트는 테두리를 그리지 않지만 이미지를 링크로 사용했을 때는 테두리가 나타난다.  border 속성을 이용하여 테두리를 감추거나 나타낼수 있다.  
  • width - 이미지의 너비를 픽셀 단이로 지정한다.  
  • height - 이미지의 높이를 픽셀 단위로 지정한다.  
  • src - 삽입할 이미지 파일의 URL을 지정한다. GIFJPG를 사용할 수 있다.  
  • hspace - 이미지의 좌우측 여백을 픽셀 단위로 지정한다.  
  • vspace - 이미지의 상하단의 여백을 픽셀 단위로 지정한다.  
  • usemap - 이미지를 클라이언트측 이미지 맵으로 사용 할 경우, 이 속성을 포함 시키고 <map> 태그 선언에서 사용한 이미지맵의  이름을 지정해 준다.
3.03.0
<input><input> 태그는 입력 양식에 다양한 입력 양식 요소를 만드는 데 사용된다. 각각의 입력 양식 요소에는 한개씩의 <input> 태그가  필요하며, 입력 양식 요소의 종류는 type 속성을 통해 제어한다.

<input align="정렬 방식" checked maxlength="최대 넓이" name="이름" size="크기" src="URL"  type="입력 요소의 종류" value="값">

  • align - type 속성이 image 일때만 효과가 있다. left, right, top, middle, bottom 중의 한가지  값을 사용할 수 있다,  
  • checked - type 속성이 radio이거나 checkbox일 때에만 효과가 있다. 라디오 버튼과 체크박스는 선택된 상태와 선택되지  않은 두가지 상태가 있는데, 태그 선언에 checked 속성이 포함되어 있으면 이들 요소를 선택된 상태로 만든다.  
  • maxlength - type 속성이 text 이거나 password일 때만 효과가 있다. 이 속성은 사용자가 입력 필드에 입력할 수  있는 수를 제한 한다.  
  • name - 입력 양식 요소에 입력된 데이터의 이름을 지정한다. 이 이름은 웹 서버에 데이터가 전송된 후에 데이터를 처리하기 위해  사용된다.  
  • size - type 속성이 text이거나 image일 때만 효과가 있다. 이 속성은 입력 필드의 길이를 지정한다.  
  • src - type 속성이 이미지일 때만 효과가 있다. 입력 양식에 추가할 이미지 파일의 URL을 지정한다. 이미지 필드는 submit  버튼과 비슷하게 작동한다. 이미지 필드가 클릭되면 클릭된 좌표와 함께 입력된 데이터가 서버에 전송된다.  
  • type - type 속성은 input 필드로 만들어진 입력 양식 요소의 종류를 지정한다. 사용할 수 있는 값은 image,text,  password, checkbox, radio, submit, rest, hidden이 있다. 이 속성이 생략되면 text가 만들어 진다.  
  • value - 입력 양식 요소의 디폴트 값을 지정한다. reset 버튼이 클릭되면 value 속성에 지정된 디폴트 값이 요소에 저장된다.
3.03.0
<ins>Defines inserted text6.24.0
<isindex>Deprecated. Defines a single-line input field. Use <input> instead3.03.0
<kbd>Defines keyboard text3.03.0
<label>Defines a label for a form control6.24.0
<legend>Defines a title in a fieldset6.24.0
<li><li> 태그는 <ol>이나 <ul> 태그 블록의 내부에 포함되어 리스트의 항목을 정의 한다. <ol> 태그 블록에 포함될 때는 리스트 항목의  앞에 번호를 붙여 주며, <ul> 태그 블록에 사용될 때는 블릿 문자를 붙여 준다.3.03.0
<link><link> 태그는 현재 문서와 다른 문서 사이의 관계를 정의한다. <a> 태그와도 비슷하지만 <link> 태그는 문서의 헤드 섹션에만 사용할  수 있다. 미래에 만들어질지 모르는 다양한 기능을 위해 디자인된 태그지만, 현재는 주로 스타일 시트 파일을 연결하는 데 사용된다.

<link href="URL" rel="문서의 관계" rev="반대의 관계" title="타이틀">

  • href - 연결할 문서의 URL을 지정한다.  
  • rel - 현재의 문서와 href 속성으로 연결된 문서 사이의 관계를 지정한다.  
  • rev - reverse link를 정의 한다.  
  • title - 연결할 문서의 타이틀을 지정한다.
4.03.0
<map>클라이언트측 이미지맵을 정의하는데 사용된다. name 속성에 지정된 이름은 <IMG> 태그의 usemap 속성에 사용된다.3.03.0
<menu>Deprecated. Defines a menu list3.03.0
<meta>웹페이지에 대한 정보를 지정하거나 웹페이지의 HTTP 헤더를 지정하는데 사용될 수 있다. <meta> 태그는 항상 문서의 헤더 섹션에 포함되어야  한다.3.03.0
<noframes>프레임을 지원하지 않는 브라우저에서 보여줄 내용을 지정한다.3.03.0
<noscript>Defines a noscript section3.03.0
<object>웹페이지에 여러가지 형태의 객체를 추가하기 위해 사용된다. 객체는 자바 애플릿일 수도 있고 이미지 파일이나 여러가지 포맷의 멀티미디어 파일일  수도 있다. <object> 태그는 HTML 4.0 이 <applet>이나 <embed> 태그 대신 권장하고 있는 새로운 태그이다.

<object classid="객체의 URL" codebase="애플릿 클래스 파일의 URL" data="객체 데 이터의 위치"  type="객체의 종류" codetype="객체의 타입" archive="객체가 이용할 데이터" width="객체의 너비" height="객체의  높이" standby="스탠바이 문자열" usemap="이미지맵의 이름" name="객체의 이름">

  • classid - 객체의 URL을 지정한다.  
  • codebase - 추가하려는 객체가 자바 애플릿일 경우 애플릿 클래스 파일의 URL을 지정한다.  
  • data - 객체 데이터의 위치를 지정한다.  
  • type - 객체의 종류를 지정한다.  
  • codetype - 객체의 타입을 지정한다.  
  • archive - 객체가 이용할 데이터 파일을 콤마로 분리된 리스트로 지정한다.  
  • width - 객체의 너비를 픽셀로 지정한다.  
  • height - 객체의 높이를 픽셀로 지정한다.  
  • standby - 객체를 로드하는 동안 보여줄 문자열을 지정한다.  
  • usemap - 객체가 이미지이고 클라이언트측 이미지맵으로 사용될 경우 이미지맵 선언의 이름을 지정한다.  
  • name - 객체의 이름을 지정한다.
3.0
<ol>Defines an ordered list3.03.0
<optgroup>Defines an option group6.06.0
<option>입력 양식내에 리스트 박스나 드롭다운 리스트를 만드는 데 사용된다. <option> 태그는 항상 <select> 태그 블록에 포함된다.

<option selected value="값">...</option>

  • selected - 이 속성이 포함되어 있으면 리스트 박스나 드롭다운 리스트가 초기화될 때 옵션이 선택된 상태가 된다.  
  • value - 입력 양식이 서버로 전송될 때 전송될 값을 지정한다.
3.03.0
<p>논리적인 하나의 문단을 지정하는데 사용된다.

<p align="정렬방식">...</p>

  • align* - 문단의 정렬방식을 지정한다. left, right, center의 세가지 값중의 하나를 선택할 수 있다.
3.03.0
<param>자바 애플릿에 인자를 제공하기 위해 사용된다. <param> 태그는 반드시 <applet> 태그 블록에 포함된다.

<param name="이름" value="값">

  • name - 인자의 이름을 지정한다.  
  • value - 인자의 값을 지정한다.
3.03.0
<pre>pre 태그 블록은 HTML 소스에 나타난 문단의 형태를 그대로 웹페이지에 보여주는데 사용된다. 보통 문단은 고정폭 글꼴을 사용해 보여진다.3.03.0
<q>Defines a short quotation6.2
<s>Deprecated. Defines strikethrough text3.03.0
<samp>프로그램이 출력한 정보를 그대로 보여주기 위해 사용된다.보통 고정폭 글꼴이 사용되지만 모든 브라우저가 고정폭 글꼴을 사용하는것은 아니다.  확실하게 고정폭 글꼴을 사용하고자 한다면 <tt나> <pre>를 사용하는것이 좋다.3.03.0
<script>HTML 문서내에 자바 스크립트나 VB 스크립트를 포함시키기 위해 사용된다. 모든 브라우저가 이 두가지 스크립터 언어를 지원하는 것은 아니다.3.03.0
<select>select 태그는 입력 양식에 드롭다운 리스트를 만드는데 사용된다. <select> 태그는 반드시 <from> 태그 블록에 포함되어야 하며,  드롭다운 리스트 항목은 <option> 태그를 이용해 지정한다.

<select multiple name="이름" size="값">...</select>

  • multiple - 이 속성이 포함되어 있으면 드롭다운 리스트에서 동시에 여러 항목을 선택할 수 있게 된다.  
  • name - name 속성은 반드시 지정되어야 한다. 이 속성에 지정된 이름은 웹 서버에 입력 양식 정보가 전달될 때 함께 전달된다.  
  • size - 드롭다운 리스트에서 한번에 몇개의 항목이 보여질지 결정한다.
3.03.0
<small>텍스트의 크기를 한 단계 감소 시킨다. 반대의 기능을 하는 태그로 <big>이 있다.3.03.0
<span><div> 태그와 <span> 태그는 id나 class 속성과 한께 사용되어 문단에 구조를 정의하기 위하여 사용된다. HTML 4.0 이전에는  큰 용도가 없었으나 이제는 스타일 시트와 결합되어 다양한 용도로 응용될 수 있다. 보통 <SPAN> 태그는 인라인 요소에, <DIV> 태그는  블록 레벨 요소에 사용된다.4.03.0
<strike>Deprecated. Defines strikethrough text3.03.0
<strong>본문을 강하게 강조한다. 대부분의 브라우저는 <strong> 태그가 사용된 본문을 볼드체로 보여준다.3.03.0
<style>웹 페이지에 스타일 시트 선언을 포함하기 위해 사용된다. 아직 모든 브라우저가 스타일 시트를 지원하지는 않는다.

<style type="text/css">...</style>

  • type - 이 속성에는 항상 "text/css"를 넣어 주어야 한다.
4.03.0
<sub> * 본문을 아래첨자 형식으로 보여준다.아래첨자로 지정된 본문은 일반 본문보다 약간 작고 아래쪽에 보여진다.3.03.0
<sup>Defines superscripted text3.03.0
<table><table> 태그는 테이블을 만들기 위해 사용된다. <table> 태그가 가진 속성들은 테이블 전체에 영향을 주는 특성들, 즉 테이블의 정렬  방식이나 배경 색상, 경계선의 두께등을 지정하며, 실제로 테이블의 열과 셀을 만드는 태그는 <table> 태그 블록에 포함되는 <tr>과  <td> 태그이다.

<table align="정렬방식" bgcolor="바탕 색상" border="경계선의 두께" cellpadding="셀과 경계선의 간격"  cellspacing="셀 사이의 간격" width="테이블의 너비">...</table>

  • align* - 테이블이 정렬되는 방법을 결정한다. left, center, right 중의 한가지를 선택할수 있다.  
  • bgcolor - 테이블의 배경 색상을 지정한다. 색상 이름이나 색상 코드를 사용할 수 있다.  
  • border - 테이블의 경계선 두께를 픽셀 단위로 지정한다.  
  • cellpadding - 테이블의 경계선과 셀 본문의 간격을 픽셀 단위로 지정한다.  
  • cellspacing - 셀과 셀 사이의 간격을 픽셀 단위로 지정한다.  
  • width - 테이블의 너비를 지정한다. 브라우저 너비의 비율로 지정하거나 픽셀 단위로 지정할 수 있다. 예를 들어, width=80%  형식은 브라우저 너비의 80% 너비를 의미하고, width=500은 500 픽셀 너비를 의미한다.
3.03.0
<tbody>Defines a table body 4.0
<td><td> 태그는 테이블에 셀을 만드는데 사용된다. <td> 태그는 반드시 <tr> 태그에 포함되어야 한다.

<td align="정렬 방식" colspan="값" width="너비" height="높이" valign="수직 정렬 방식"  nowrap>...</td>

  • align* - 테이블 셀에 포함될 내용이 정렬되는 방법을 결정한다. left, center, right 중의 한 가지를 사용할 수  있다.  
  • colspan - 테이블 셀이 여러개의 행에 걸쳐 합칠 때 합칠 개수를 지정한다.  
  • rowspan - 테이블 셀이 여러개의 열에 걸쳐 합칠 때 합칠 개수를 지정한다.  
  • width* - 테이블의 너비를 픽셀 단위로 지정한다.  
  • height* - 테이블의 높이를 픽셀 단위로 지정한다.  
  • valign - 테이블 셀에 포함될 내용이 수직으로 정렬될 방법을 결정한다. top, middle, bottom 중에서 한가지를 선택할  수 있다.  
  • nowrap* - 테이블 셀의 본문에 셀의 너비에 맞추어 자동으로 줄을 바꾸지 못하도록 한다.
3.03.0
<textarea>입력 양식에 여러 라인의 문자열을 입력할 수 있는 문자열 입력 필드를 만들어 준다. <textarea> 태그는 반드시 <form> 태그 블록의  내부에 포함되어야 한다.

<textarea cols="행의 수" name="이름" rows="열의 수">...</textarea>

  • cos - 문자열 입력 필드의 행의 수를 지정한다.  
  • name - 사용자가 입력 필드에 입력한 문자열의 이름을 지정한다.이 이름은 데이터가 서버에 전송될 때 함께 전송된다.  
  • rows - 문자열 입력 필드의 열의 수를 지정한다.
3.03.0
<tfoot>Defines a table footer 4.0
<th><th> 태그는 <td> 태그와 마찬가지로 테이블의 셀을 만든다. 다른 점은 셀에 포함되는 본문이 중앙으로 정렬되는 것이 기본값이며, 본문이  볼드체로 나타난다는 것이다. <th> 태그는 주로 다른 셀의 헤더로 사용될 셀을 만드는 데 사용된다.

<th align="정렬 방식" colspan="값" width="너비" height="높이" valign="수직 정렬 방식"  nowrap>...</th>

  • align* - 테이블 셀에 포함될 내용이 정렬되는 방법을 결정한다. left, center, right 중의 한 가지를 사용할 수  있다.  
  • colspan - 테이블 셀이 여러개의 행에 걸쳐 합칠 때 합칠 개수를 지정한다.  
  • rowspan - 테이블 셀이 여러개의 열에 걸쳐 합칠 때 합칠 개수를 지정한다.  
  • width* - 테이블의 너비를 픽셀 단위로 지정한다.  
  • height* - 테이블의 높이를 픽셀 단위로 지정한다.  
  • valign - 테이블 셀에 포함될 내용이 수직으로 정렬될 방법을 결정한다. top, middle, bottom 중에서 한가지를 선택할  수 있다.  
  • nowrap* - 테이블 셀의 본문에 셀의 너비에 맞추어 자동으로 줄을 바꾸지 못하도록 한다.
3.03.0
<thead>Defines a table header 4.0
<title>웹 페이지의 타이틀을 지정한다. <title> 태그는 반드시 <head> 태그 블록에 포함되어야 한다.3.03.0
<tr>테이블 내에 열을 만들기 위해 사용된다. <tr> 태그는 반드시 <table> 태그 블록에 포함되어야 하며, 원하는 열의 개수 만큼 <tr>  태그가 필요하다. <tr> 태그 블록에는 <td>나 <th>가 포함되어 셀을 만들어 낸다.

<tr align="정렬 방식" valign="수직 정렬 방식">...</tr>

  • align - 열에 포함될 셀의 디폴트 정렬 방식을 결정한다. left, center, right 중의 한 가지 값이 될수 있다.  
  • valign - 열에 포함될 셀의 디폴트 수직 정렬 방식을 결정한다. top, middle, bottom 중에서 한가지 값을 선택할 수  있다.
3.03.0
<tt>본문을 텔레타이프 형식으로 보여 준다. 대부분의 브라우저는 <tt> 태그 블록의 본문을 고정폭 글꼴을 사용해 보여준다.3.03.0
<u>Deprecated. Defines underlined text3.03.0
<ul><ul> 태그는 블릿 리스트를 만드는 데 사용된다. 리스트 항목은 <li> 태그로 정의 한다.

<ul compact type="종류">...</ul>

  • compact - 이 속성이 포함되어 있으면 리스트를 최대한 작은 공간을 차지하도록 표시해 준다. 현재의 브라우저들은 이 속성을 지원하지  못한다.
3.03.0
<var>컴퓨터 프로그램의 변수를 표시하기 위해 사용한다. 이 태그를 보여 주는 방식은 브라우저 마다 차이를 보인다.3.03.0
<xmp>Deprecated. Defines preformatted text. Use <pre> instead3.03.0
2007/02/07 11:28 2007/02/07 11:28
이 글에는 트랙백을 보낼 수 없습니다
HTML  2006/11/03 15:49

iframe 태그 속성


1. src

  IFRAME 에 들어갈 파일의 주소(URL)를 입력
  예) src=http://cafe.naver.com/swingme.cafe

2. width, height

  IFRAME 창의 가로, 세로의 길이를 결정하는 요소

  숫자를 입력해야 하며, 단위는 픽셀(Pixel)

  예) width="500", height="600"


3. align

  IFRAME 을 페이지안에 추가할때 좌,우,중앙 정렬을 어떻게 할것이지 결정

  화면왼쪽은 left, 오른쪽은 rignt, 중앙은 center

  예) align="left"


4. frameborder

  웹 페이지안에 iframe 을 추가할때 iframe 의 테두리선을 보이게 할것인지 아닌지를 결정

  보이게 할려면 1 또는 yes, 안보이게 할려면 0 또는 no

  예) frameborder="0"


5. scrolling

  IFRAME 내부에 상하스크롤을 나타나게 할 것인지 아닌지를 결정

  'Yes' 라고 하면 페이지 내용의 많고 적음에 상관없이 스크롤이 생기고,
  'No' 라고 하면 무조건 스크롤이 생기지 않음
  'Auto' 로 설정하면 내용에 따라 자동으로 스크롤의 생성 여부를 결정


6. name

  IFRAME 도 FRAME 이기 때문에 FRAME 에서 사용하는 NAME 속성이 존재한다.
  그래서 만약 IFRAME 의 NAME 을 "swingme" 이라고 설정한 후,
  다른 프레임의 하이퍼링크에서 TARGET="swingme" 와 같이 설정한다면
  이 링크를 눌렀을 때 IFRAME 안에 있는 페이지가 링크를 따라 이동하게 된다.


7. marginwidth, marginheight

  이 기능은 IFRAME 내부 페이지의 간격(여백)을 설정
  즉, IFRAME 의 테두리와 내부 페이지 내용 사이에 어느 정도의 간격을 둘 것인가를 설정
  숫자가 클 수록 테두리와 내용 사이의 거리는 멀어지게 되고, 숫자가 작을 수록 내용이

   테두리와 가까워짐

  예) marginwidth="10", marginheight="5"


8. allowtransparency

  iframe 은 다른 페이지의 내부에 입력되므로 해당 페이지의 디자인 또는 색상에

  영향을 받는다.

  즉, swingme.html 페이지의 배경색상이 파랑 이라면 iframe 의 배경색도 파랑색으로 된다.


  예를 들자면 하나의 iframe 을 a.html 과 b.html 에 삽입할때

  a.html 은 배경색이 파랑, b.html 은 배경색이 빨강일 경우 어떻게 될까?

  이럴때 유용하게 사용하는 속성이 바로 allowtransparency 속성이다.

  이 속성은 현재 iframe 페이지의 배경색을 투명하게 만들어주는 속성으로

  a.html 에 넣으면 파랑으로 b.html 에 넣으면 빨강으로 보여지게 된다.

  ( 참고로 이 속성은 Internet Explorer 5.5 버전 이상부터 지원 )

  아이프레임으로 불러올 문서의 배경색을 우선
  bgcolor="transparent" 로 해주세요~
  그리고 아이프레임을 삽입하실때 아래처럼 적어주세요~
  <
iframe src="불러올 문서주소"   allowTransparency="true">

9. hspace, vspace

  가로,세로 여백을 정함


예)

<iframe src="http://cafe.naver.com/swingme.cafe" frameborder="no" width="565" height="800"

align="left" scrolling="no"></iframe>

<IFRAME language=javascript dataFld=dataField class=blue lang=ko id=iframeId dir=ltr title="iframe 제목" style="BORDER-RIGHT: blue 1px dotted; BORDER-TOP: blue 1px dotted; BEHAVIOR: url(../public/hilite.htc); BORDER-LEFT: blue 1px dotted; BORDER-BOTTOM: blue 1px dotted" dataSrc=dataUrl border=1 name=iframeName align=center marginWidth=0 marginHeight=0 src="http://trio.co.kr/club/public/clock.html" frameBorder=0 width=114 scrolling=no longDesc="IFRAME 설명을 위한 예제" height=25 cite="iframecite" hasMedia="false" timeContainer="none" systemLanguage="ko" systemCaptions="on" systemBitrate="5000" label="iframelabel" blockDirection="ltr" end="99" begin="0"><span>자식 SPAN 안보임</span></IFRAME>

2006/11/03 15:49 2006/11/03 15:49
이 글에는 트랙백을 보낼 수 없습니다
HTML  2006/11/02 14:19
다른 domain 간의 페이지(origin check)


두 개 이상의 프레임을 가진 페이지 간에 참조를 할 수 없는 경우가 있는데, 세가지 이유가 있습니다.
1. domain, 2. protocol, 3. port 이 다를 때, 서로 참조할 수 없습니다.


http://company.com/dir/page.html에서 아래의 URL을 참조 했을때의 결과입니다.

URL 결과이 유
http://company.com/dir2/other.html가능
http://company.com/dir/inner/another.html가능
http://www.company.com/dir/other.html불가능다른 domain
file://D|/myPage.htm불가능다른 protocol
http://company.com:80/dir/etc.html불가능다른 port

위의 경우 중에서 참조할 수 있는 한 가지 예외가 있습니다. domain입니다.
http://www.company.com/dir/other.html 에서 document.domain = "company.com";로 지정하면 서로 참조할 수 있습니다. 이것의 실행 후에 http://company.com/dir/page.html 페이지를 참조할 수 있습니다.



참조 가능할 때 사용할 수 있는 Properties
ObjectProperties
Imagessrc, lowsrc
Layersrc
Locationx, y 외에 모두
Windowfind
DocumentFor both read and write: anchors, applets, cookie, domain, elements, embeds, forms, lastModified, length, links, referrer, title, URL, formName (for each named form), reflectedJavaClass (for each Java class reflected into JavaScript using LiveConnect)

For write only: all other properties


NN3와 NN4에서 달라진 Origin Check(domain, protocol, port가 다른 페이지간의 참조시 일어남.)
1. form

이름이 있는 form은 NN4에서 origin check에 걸립니다. 이것을 피하기 위해서 폼 이름을 외부변수로 저장하여 window object의 property로 만들면 이 때부터 그 외부변수는 지정받은 폼이 됩니다. 이 외부변수로 참조할 form을 사용하면 됩니다.

2. file:URL

NN3에서는 <script SRC="...">로 아무런 protocol(file:, http:)도 사용할 수 있었지만, NN4에서는 한가지 제한 사항이 새로이 생겼습니다. 그것은 <script SRC="...">의 ...에 file: 외의 protocol을 가진 화일을 열었을 때, 열린 화일에서는 <script SRC="file:...">을 사용할 수 없습니다. file:을 사용할려면 한가지를 Netscape 사용자 폴더의 prefs.js화일에 넣어 줘야 하는데, 그것은 아래입니다.

user_pref("javascript.allow.file_src_from_non_file", true);

이것은 주의해서 사용해야 합니다. 보안상 문제가 있을 수 있습니다.

3. Layer

Layer에서 origin check는 다른 origins의 layer에서 일어납니다.
어떤 페이지가 하나 이상의 layer를 가지고 있을 때, 페이지 간의 layer를 먼저 사용하기 전에 origin check를 먼저 합니다.

4. Java Applet에서 Origin Check가 일어나는 때.

Applet가 JavaScript를 사용할 수 있게 하는 MYSCRIPT attribute를 가지고 있는 Applet가 JavaScript를 호출할 때 일어납니다. 여기서 applet의 origin은 applet 택을 가지고 있는 페이지의 URL입니다.



이 페이지 Origin Check는 확인 해보지 못했습니다.
Netscape 사의 설명을 번역한 것입니다.

IE에서는 다를 수 있습니다.



--
ie4에서 프레임에서 두 페이지가 같은 domain 이라도 host가 다를때 서로 페이지를 참조할 수 없습니다. ie4에서 다른 zone(지역도메인) 의 페이지를 참조하기 위해서는 두 페이지에 모두에
<script>	document.domain = "mySite.com"</script>
으로 같은 도메인을 지정하여야 하면 다른 호스트의 페이지를 참조할 수 있습니다. 위의 설정을 host1.mySite.com 과 host2.mySite.com 에 있는 두 페이지에서 지정을 해야합니다. 이것은 ie3.x대 에서는 없고 ie4에 추가된 cross-frame security 입니다.
2006/11/02 14:19 2006/11/02 14:19
이 글에는 트랙백을 보낼 수 없습니다

Hey, I didn't know you could do that

여러분이 개발자이고 나와 같은 길을 걸어 왔다면, 웹페이지에서 많은 Javascript 조각들을 사용해 왔을 것이다. 마치 UI 딱풀 마냥..

최근까지 나는 Javascript 내가 취업 했을 때보다 객체지향(OO_ 능력을 가졌다고는 하지만 별로 그것을 사용해야하는 느낌은 받지 못했다. 브라우져들이 Javascript DOM 좀더 표준화된 형상을 지원하기 시작함에 따라, client 상에서 구동하기 위한 복잡하고 기능적인 코드를 작성하 것이 가능해졌다. 그것은 AJAX 사상(事象) 탄생하도록 도왔다.

우리 모두가 AJAX 애플리케이션을 만들기위해 코드를 작성하는 것을 것을 배울 즈음해서, 우리가 알고있었던 Javascript 정말 빙산의 일각에 불과했다. , 이제 우리는 입력값 검사와 하찮은 업무들과 같은 간단한 UI 허드렛일들을 넘어서 사용되고 있는 Javascript 살펴 것이다. 요즘, client 상의 코드는 점점 진보적이고 계층화되며, 많이 실제 데스크탑 애플리케이션 또는 c/s환경의 무거운 client 처럼 되어 가고 있다. 우리는 class library, object model, hierarchy, pattern 그리고 단지 우리의 server 코드에서 눈에 익었던 다른 많은 것들을 알아 것이다.

여러가지면에서 우리는 갑작스레 화면의 bar 전보다 훨씬 높게 놓는것에 대해 얘기 할수 있다. 새로운 WEB 위해 애플리케이션들을 작성하기 위해서는 훨씬 강도높은 기술의 숙달을 필요로 한다. 그리고 우리는 목적을 이루기 위해서 우리 자신의 Javascript 기술들을 향상시켜야만 한다. 만일 외부에 존재하는 많은 javascript library 사용하기를 시도한다면, Prototype.js, Scriptaculous, moo.fx, Behaviour, YUI, 등등 처럼, 여러분은 결국 JS code 여러분 스스로 판독해서 알아야 할것이다. 아마 여러분은 라이브러리들이 그것을 구현하는 방법을 배우기 원하거나 알기 원하거나 해서, 또는 라이브러리가 사용법을 이해하기 위한 유일한 방법이거나 해서, 문서가 대부분의 라이브러리들과 관련되어 있어 보이지 않거나 해서..( Maybe because you want to learn how they do it, or because you're curious, or more often because that's the only way to figure out how to use it, since documentation does not seem to be highly regarded with most of these libraries. 아마도 이유인즉 그것들이 어떻게 동작하지 배우고 싶기 때문이거나, 호기심 때문이거나, 종종 라이브러리들의 대부분이 문서화가 되어있기 때문에, 사용법을 알기 위한 유일한 방법이 그것밖에 없기 때문일 것이다. ) 밖에 무엇이든지 경우에 있어서, 전에 그것과 같은 어떠한 것들을 본적이 없다면 여러분은 낯설고 두려운 상황에 직면하게 것이다.

글의 목적은 아직 익숙하지 않은 생성자들의 타입들을 꼼꼼히 설명함에 있다.

Related article

Prototype.js documentation

JSON

JavaScript Object Notation (JSON,) AJAX 테마와 관련하여 갑자기 새로운 기술 용어 하나이다. JSON javascript에서 선언적 object 하나의 방식이다. 이제 바로 예제를 보고 어떻게 처리하는지 보도록 하자.

var myPet = { color: 'black', leg_count: 4, communicate: function(repeatCount){

for(i=0;i<repeatCount;i++) alert('Woof!');} };

                

, 소스 포맷을 약간 추가 해서 알아 보기 쉽게 보도록 하자:

var myPet = {

     color: 'black',

     legCount: 4,

     communicate: function(repeatCount){

           for(i=0;i<repeatCount;i++)

                 alert('Woof!');

     }

};

                

여기서 우리는 두개의 속성들(color legCount) 메서드(communicate) 이용하여 object 참조를 만들었다. 콤마로 구분된 리스트로서 object 속성들과 메소드들을 정의되어있는것을 이해하는것은 어렵지 않은 일이다. 구성들을 name으로 정의되어 보여지며 colon(:) 따라오서 다음으로 정의부 이다. 속성의 경우에서는 단지 값으로 정의부를 채운다. 익명 함수(anonymous function) 할당으로 메소드들을 만든다. 이는 다음 아래 줄에서 자세히 설명할 것이다. object 만든 후에 myPet 변수에 할당하며, 우리는 다음과 같이 변수를 사용 할수 있다:

alert('my pet is ' + myPet.color);

alert('my pet has ' + myPet.legCount + ' legs');

//if you are a dog, bark three times:

myPet.communicate(3);

                

여러분은 요즘 JS에서 도처에 사용되어진 JSON 것이다. 함수들에 인수, 리턴 값들, 서버의 응답들(string 에서) etc.

What do you mean? A function is an object too?

이는 질문에 대해 생각해 본적 없는 개발자들에게는 생소 것이지만 JS에서 함수(function) 또한 object이다. 예를 들어, string 처리하는 다른 함수에 인자로서 함수를 처리 있다. 이는 광범위하게 사용되어지고 매우 유용하다.

예제를 보도록 하자. 우리는 다른 함수(annoyThePet) 함수들(myDog.bark, myCat.meow) 인자로 주어 것이다. annoyThePet function에서 인자로 주어진 function 사용 것이다.

var myDog = {

     bark: function(){

           alert('Woof!');

     }

};

var myCat = {

     meow: function(){

           alert('I am a lazy cat. I will not meow for you.');

     }

};

function annoyThePet(petFunction){

     //let's see what the pet can do

     petFunction();

}

//annoy the dog:

annoyThePet(myDog.bark);

//annoy the cat:

annoyThePet(myCat.meow);

                

우리가 myDog.bark myCat.meow 추가도니 괄호 "()" 없이 인자로 사용한 것에 대하여 주목 해야 한다. 만일 우리가 인수로 넘긴 function 존재 하지 않거나 method 호출하고 return value 인수로 넘긴다면, 경우에 대해 undefined 보일 것이다.

여러분이 나의 게으른 고양이가 처럼 짖게 만들기 원한다면, 여러분은 이처럼 쉽게 있다:

myCat.meow = myDog.bark;

myCat.meow(); //alerts 'Woof!'

                

Arrays, items, and object members

다음 JS안에 줄은 같은 일을 한다.

var a = new Array();

var b = [];

                

나는 여러분이 이미 알고 있는 대로, 여러분은 사각 괄호를 사용하여 array안의 각각의 아이템들을 접근 있다:

var a = ['first', 'second', 'third'];

var v1 = a[0];

var v2 = a[1];

var v3 = a[2];

                

하지만 여러분들을 숫자 색인으로만 접근 제한하지 않는다. 여러분은 string으로 멤버의 이름을 사용하여 JS object 멤버들을 접근 있다. 다음 예제는 object 만들고 name으로서 어떤 멤버들을 추가한다.

var obj = {}; //new, empty object

obj['member_1'] = 'this is the member value';

obj['flag_2'] = false;

obj['some_function'] = function(){ /* do something */};

                

위의 코드는 아래와 같이 동일한 효과를 가진다:

var obj = {

     member_1:'this is the member value',

     flag_2: false,

     some_function: function(){ /* do something */}

};

                

다양한 방법으로, JS에서 object들의 사상과 연관 arraray(hashes)들은 구별 하지 않는다. 다음 역시 같은 일을 한다.

obj.some_function();

obj['some_function']();

                

Enough about objects, may I have a class now?

OOP 프로그래밍 언어들의 강력한 힘은 class들의 사용에서 나온다. JS에서 나는 어떻게 class들을 정의하는지 나의 이전 경험으로 비춰볼때 짐작초차 하기 어렵다. 직접 판단하시오.

//defining a new class called Pet

var Pet = function(petName, age){

     this.name = petName;

     this.age = age;

};

//let's create an object of the Pet class

var famousDog = new Pet('Santa\'s Little Helper', 15);

alert('This pet is called ' + famousDog.name);

                

우리의 Pet class method 추가 하는 방법을 보도록 하자. 우리는 모든 class들이 가지고 있는 prototype property 사용하게 것이다. prototype property class 어떠한 object 가지고 있을 모든 멤버들을 포함하는 object이다. String, Number, and Date 같은 default JS class 조차도 prototype object 가지고 있다. 우리는 method들과 property들을 prototype object 추가 있다. class 어떠한 object 새로운 멤버를 자동으로 얻는다.

Pet.prototype.communicate = function(){

     alert('I do not know what I should say, but my name is ' + this.name);

};

                

prototype.js 같은 라이브러리는 여러모로 편리할 때가 있다. 만일 우리가 prototype.js 사용한다면, 우리의 코드를 깔끔하게 있다.(적어도 견해로는..)

var Pet = Class.create();

Pet.prototype = {

     //our 'constructor'

     initialize: function(petName, age){

           this.name = petName;

           this.age = age;

     },

    

     communicate: function(){

           alert('I do not know what I should say, but my name is ' + this.name);

     }

};   

                

Functions as arguments, an interesting pattern

만일 여러분이 클로져(절차를 오브젝트로서 취급하는 기능. 오브젝트화 절차를 클로져라함) 지원하는 언어들 - Ruby 또는 C#2.0- 이용하여 작업한 적이 없다면 여러분은 다음 이디엄이 매우 생소하다는것을 느낄 것이다.

var myArray = ['first', 'second', 'third'];

myArray.each( function(item, index){

     alert('The item in the position #' + index + ' is:' + item);

});

                

~! 내가 너무 앞어서 여러분이 이것보다 좋은 기사를 찾아 보기 전에 여기 무슨 일이 생겼는지 설명한다.

무엇보다 먼저, 예제에서 우리는 prototype.js library 사용하고 있다. 이것은 Array class each function 추가한다. each function function object 하나의 인자를 받는다. 차례로, array에서 item 대해 function 한번씩 호출 것이며, 호출될때 두개의 인자를 전달한다. 현재 item 대한 item index 이다. 우리의 iterator function 호출 해보자. 또한 우리는 이것과 같은 작성된 코드를 작성할 있다.

function myIterator(item, index){

     alert('The item in the position #' + index + ' is:' + item);

}

var myArray = ['first', 'second', 'third'];

myArray.each( myIterator );

                

비록, 마지막 포맷이 이해하기에 편하지만 myIterator function 찾는 코드에서 주변으로 튀어 버리는 현상을 야기한다. myIterator 호출하는 같은 장소에서 iterator function 로직을 가지는것이 좋다. 또한, 이경우에, 우리의 코드에서 어디 다른 곳에 iterator function 필요로 하지 않을 것이며, 그래서 우리는 문제없이 myIterator function anonymous function 있다.

원래의 예제를 분명하게 하기 위해서 어떤 하이라이팅 효과를 이용해서 다시 보자.

                      

var myArray = ['first', 'second', 'third'];

myArray.each( function(item, index){

     alert('The item in the position #' + index + ' is:' + item);

} );

                

This is this but sometimes this is also that

우리가 가지고 있는 가장 일반적인 문제들 가운데 하나는 JS 이용함에 있어서 this 키워드의 사용을 우리의 코드에 작성하기 시작할 이다. 그것은 실제 올가미가 될수 있다.

우리가 전에 언급한 처럼, 함수 또한 JS에서 object이고 때때로 우리는 function 전달한 것을 알아 채지 못한다.

예제로 코드 조각으로 다뤄 보자.

function buttonClicked(){

     alert('button ' + this.id + ' was clicked');

}

var myButton = document.getElementById('someButtonID');

var myButton2 = document.getElementById('someOtherButtonID');

myButton.onclick = buttonClicked;

myButton2.onclick = buttonClicked;

                

buttonClicked function 어떠한 object 외부에서 정의 하였기 때문에 우리는 this 키워드가 window 또는 document object 참조를 포함 것이라고 생각하는 경향이 있을 것이다.(이코드 브라우저에서 보여지는 HTML 페이지의 중앙에 있다고 가정 하자.)

그러나 우리가 코드를 실행시켜 보면 그것이 클릭된 버튼의 id 가리키거나 보여지는 것으로 작동되어 보여진다. 버튼의 onclick method buttonClicked object 참조를 포함하게 되며, 이전의 거기에 무엇이 있던간에 교체되어 진다. 버튼을 클릭할때 마다, 브라우저는 다음 줄과 같은 어떤 일을 수행할 것이다.

myButton.onclick();

                

결국 그렇게 혼란스러운것은 아니다. 그렇죠? 그러나 여러분이 다뤄야할 다른 object 갖기 시작했고 버튼의 click 같은 이벤트에서 이러한 object 반응시키기 원한다.

var myHelper = {

    

     formFields: [ ],

    

     emptyAllFields: function(){

           for(i=0; i<this.formFields.length; i++){

                 var elementID = this.formFields[i];

                 var field = document.getElementById(elementID);

                 field.value = '';

           }

     }

};

//tell which form fields we want to work with

myHelper.formFields.push('txtName');

myHelper.formFields.push('txtEmail');

myHelper.formFields.push('txtAddress');

//clearing the text boxes:

myHelper.emptyAllFields();

var clearButton = document.getElementById('btnClear');

clearButton.onclick = myHelper.emptyAllFields;

                

나의 페이지에서 Clear button 클릭 할수 있고 3개의 text 박스들을 모두 비울 것이다. 다음에 여러분은 runtime error 얻기 위해 단지 버튼 클릭만 시도하면 된다. 에러는 this 키워드와 관련 있을 것이다(추측 컨데..). 문제는 this 버튼에 참조를 포함한다면 this.formFields 정의 되지 않는다 것이다. 이것은 정확하게 무슨 일이 발생 하겠는가 이다. 한가지 빠른 해결책은 우리의 코드 마지막 줄을 작성하는 것이 것이다.

clearButton.onclick = function(){ myHelper.emptyAllFields(); };

                

그것은 우리가 helper object 컨텍스트 안에 우리의 helper method 호출하는 특정의 타입의 새로운 function 만드는 방법이다.

2006/10/28 20:06 2006/10/28 20:06
이 글에는 트랙백을 보낼 수 없습니다

소개

웹 도처에 사용되는 자바스크립트의 늘어가는 인기는 클라이언트측 코드가 안정성, 속도, 재사용성등이 혼합으로 구현되도록 하는것이 좀더 중요하게 되었다. 이것을 달성하기 위한 가장 좋은 방법중 하나는 간단한 라이브러리와 모든 프로젝트를 위한 기본사항처럼 사용하기 위한 문법이다. 고맙게도 Sam Stephenson 는 우리의 자바스크립트 개발을 쉽게 하기 위한 Prototype.js 라 불리는 놀라운 함수들의 라이브러리를 만들었다.

우리의 독자들이Prototype 문법을 사용하는 문서 를 읽은 후 크게 놀랐고, 우리는 많은 개발자를 위해 좀더 쉽게 배울수 있도록 도와주는 라이브러리를 위한 참조문서를 만드는게 좋겠다는 결심을 했다. 다음의 튜토리얼은 Particletree프로젝트에서 사용된 가장 공통적인 함수들을 사용하는 간단한 예제와 함께 설명할 것이다. 이 문서는 Sergio Pereira에 의해 좀더 많은 내용을 가진 비공식적인 프로토타입 문서 와 함께 사용되었음을 의미한다. 그리고 script.aculo.us 문서 위키는 모든 자바스크립트/프로토타입 개발자들이 읽기를 매우 추천한다.

시작하기

파일을 다운로드 한 후에, 당신이 선호하는 디렉토리에 그 파일들을 넣어둬라. 당신이 해야할 일은 html문서에 다음처럼 추가를 하는 것이다.

  <script src="/scripts/prototype.js" type="text/javascript"></script>

이것으로 자바 스크립트를 개발하는게 10배는 쉬워진다. 지금, 당신이 획득한 새롭고 멋진 무기를 보자.

알림 - 이 튜토리얼은 1.3.1버전을 기반으로 작성되었다.

$() 함수

가장 자주 사용되고 편리한 함수인, $()는 DOM요소를 다루기 위한 쉬운 방법을 제공한다. 일반적으로, 당신이 DOM내 특정 요소에 접근하고자 한다면, 다음처럼 작성할것이다.

  node = document.getElementById("elementID");

$()를 사용하면, 다음처럼 간단히 작성할수 있다.

  node = $("elementID");

간단하고 멋지지만 이러한 장점보다, $()함수는 다중 요소를 함수안으로 가져오는 기능을 가지고 있기 때문에 document.getElementById()보다 좀더 강력하다.

  allNodes = $("firstDiv", "secondDiv");
for(i = 0; i < allNodes.length; i++) {
   alert(allNodes[i].innerHTML);
}

이 예제에서, 우리는 루프를 통해 간단히 접근할수 있는 요소들의 배열을 가지고 오는 것을 볼수 있다.

폼 헬퍼(Form Helper) 함수

폼은 HTML과 CSS관점에서 근심거리일뿐 아니라, 자바스크립트의 측면에서도 그렇다. Prototype.js는 폼을 다루는 유용하고 독창적인 함수를 제공한다.

$F() 함수 는 폼 요소의 값과 전달하는 ID를 반환한다. 만약 우리가 다음처럼 HTML필드를 둔다면,

  <input type="text" id="textfield" name="textfield" />
<textarea rows="5" cols="5" id="areafield" name="areafield"></textarea>
<select id="selectfield" name="selectfield">
   <option value="1" selected>One</option>
   <option value="2">Two</option>
</select>
<input type="checkbox" id="checkfield" name="checkfield" value="1" checked />

우리는 $F()함수를 사용하여 폼내의 값들에 쉽게 접근할수 있다.

  $F("textfield");      // returns the value of the text input
$F("areafield");      // returns the value of the textarea
$F("selectfield");    // returns the selected value of the select
$F("checkfield");     // returns undefined if not checked, or the value

제어와는 관계없이 값을 얻는 기능은 대부분의 환경에서 좀더 쉽게 폼을 처리하도록 해준다. 여기에 이 함수를 사용할때 찾을수 있는 두가지 결점이 있다. 1) radio그룹의 선택된 값에 접근하는 쉬운 방법이 없다(하나의 radio요소의 값만 처리). 2) $()함수를 사용할때처럼 다중 ID를 전달하는 것이 불가능하다.

*다른 함수인, Form.getElements() 는 타입에 관계없이 모든 폼 요소의 배열을 반환한다.

  allNodes = Form.getElements("myform");
for(i = 0; i < allNodes.length; i++) {
   //do something to each form field
}

이 예제에서, 우리는 myform이라는 id를 가진 폼으로 부터 모든 요소를 가져온다. 만약 당신이 onclick을 추가하고 싶거나 각각의 폼필드에 도움말 팝업을 추가하기를 원한다면, 당신은 위와 같은 형식을 통해 할수 있다.

우리가 볼 다음 메소드는 Form.serialize()이다. Ajax요청을 빌드할때, 당신은 데이터를 전달하기 위해 당신 자신만의 문자열을 포맷팅하기를 원한다. 폼이 서브밋되었을때, 문자열은 빌드되고, serialize()는 처리를 쉽게 만든다.

  allNodes = Form.serialize("myform");

// returns field1=value1&field2=value2&field3=value3 and so on...
 

우리를 돕기 위해 문자열을 빌드하라. 하지만 메소드를 좀더 좋게 만드는 것은 이것은 필드의 타입에 기초를 두지 않는 것이다. 우리는 이전에 $F()가 radio그룹에서 몇가지 문제점을 가지는 것을 봤다. 하지만 serialize()는 어떠한 필드 타입을 위해서도 값을 정확하게 처리한다. 사용가능한 폼 메소드만 있는 것은 아니다, 나머지것들을 보기 위해서는 Sergio의 문서 를 보라.

getElementsByClassName

getElementsByClassName()가 아직도 자바스크립트로 빌드되지 않은 이유는 뭔가.? 이것은 프로토타입이 아니고 그래서 프로토타입은 문서객체의 확장처럼 저장소(arsenal)로 이것을 추가했다. 이것은 document.getElementsByTagName()처럼 정확하게 작동한다. 단지 차이점은 className을 체크하는 것이다.

  allNodes = document.getElementsByClassName("red");
for(i = 0; i < allNodes.length; i++) {
   alert(allNodes[i].innerHTML);
}

반환되는 배열은 주어진 className과 일치하는 모든 요소를 포함한다. 이것은 다중 className을 가진 요소들과도 잘 작동한다. getElementsByClassName()는 도처에서 모든 프로젝트에서 사용되는 함수가 되었다. 주로 DOM이벤트에 붙기 때문에 나는 모든 개발자가 이것을 사용하도록 제안한다.

요소 헬퍼(Element Helper) 함수

요소객체는 공통적으로 DOM조작을 돕는 많은 수의 헬퍼 함수를 제공한다. 몇몇 이러한 함수는 하나의 호출에 10줄 이상의 코드를 단순화하는동안 어떤 새로운 것도 생성하지 않는다. 그럼 몇몇 예제를 보자.

헬퍼 없이 요소의 높이를 가져오자.

  $("first").offsetHeight

그리고 지금은 헬퍼를 사용하는 경우이다.

  Element.getHeight("first")

이 경우, 헬퍼는 어떠한 잇점도 제공하지 않는다. 지금 우리가 요소로부터 className을 제거하길 원하는가.? 이것은 (Prototype.js소스코드로 부터 얻어진) 다소 긴 방법이다.

  element = $(element);
if (!element)
   return;
var newClassName = '';
var a = element.className.split(' ');
for (var i = 0; i < a.length; i++) {
   if (a[i] != className) {
       if (i > 0)
           newClassName += ' ';
       newClassName += a[i];
   }
}
element.className = newClassName;

그리고 지금은 헬퍼 함수를 사용하는 경우이다.

  Element.removeClassName("elementID", "red");

멋진가.? 첫번째 예제와는 달리, 대부분의 헬퍼 함수는 공통적인 작업을 쉽게 수행하여 시간과 수고를 아낀다. 그리고 일관성을 위해, 이것은 프로젝트 도처에 Element문법을 사용하는 것이 가장 좋은 방법이 될것이다. 헬퍼 함수의 전체 목록과 그것들을 사용하는 방법을 보기 위해서, Sergio의 프로토타입 문서를 보라.

Try.these 함수

Try.these()는 다른 자바스크립트 구현물과 관계없이 브라우저를 종속되지 않고 작동하는 코드를 생성하도록 개발자를 도와주기 위한 멋진 함수이다. 객체와 브라우저 인식의 자신만의 방법대신에, 이 함수는 에러를 발생할때까지 코드의 하나의 경로를 수행하도록 시도하고 다음 경로로 교체한다.

  return Try.these(
   function() {
       alert("first");
       jkgjhgjhg        //intentional error
       alert("firsterror");
       return 1;
   },
   function() {
       alert("second");
       return 2;
   }
);

위 예제에서, 첫번째 경로는 내부 에러발생시 수행을 멈출것이다. 이것을 알라. 모든것은 에러가 발생되지 전에 수행되어야 하기 때문에 이것은 우리의 코드가 신중하도록 하기 위해 중요하다. 우리는 코드가 두번 수행되지 않도록 주의해야만 한다. 전체적으로, Try.these()는 우리가 종종 사용하는 함수일뿐 아니라, 이것이 존재하고 어떻게 사용해야 하는지 아는것은 멋진 일이다.

Ajax 지원

라이브러리에서 Ajax지원 함수는 부족하지 않다. 그리고 나는 Prototype.js의 도움으로 Ajax애플리케이션을 생성하는 방법을 보여줄것이다. 문서로부터 우리는 다음처럼 일반적인 Ajax요청을 볼수 있다.

  var myAjax = new Ajax.Request(
   url,
   {method: 'post', parameters: data, onComplete: ajax_response}
);
 

메소드가 post이거나 get인 지점에서, 파라미터는 이름/값 형태의 문자열이고, onComplete은 모든것이 종료되었을때 호출되어야 하는 함수이다. 핵심기능을 이해했을때, 라이브러리를 도구화하는 자신만의 함수를 생성하여 반복적인 Ajax호출을 만드는 것이 쉽다. 먼저, Ajax요청을 처리하는 간단한 함수이다.

  function ajax_request(url, data) {
   var myAjax = new Ajax.Request(
       url,
       {method: 'post', parameters: data, onComplete: ajax_response}
   );
}

요청이 종료된후, 이것을 ajax_response()로 보낸다.

  function ajax_response(originalRequest) {
   if(!bHasRedirect) {
       //process originalRequest.responseText;
   }
   else {
       bHasRedirect = false;
       ajax_request(originalRequest.responseText, "");
   }
}

당신이 Ajax요청을 만든후, 응답은 언제나 ajax-response()로 보내진다. 여기서 다른 Ajax요청은 bHasRedirect(전역변수)가 true로 셋팅된 경우에만 만들어질것이고 true가 아니라면 아마 코드는 함수와 originalRequest.responseText()의 전역 배열에 기반하여 수행될것이다.

PeriodicalExecuter

PeriodicalExecuter객체가 초기화되면, 이것은 주어진 기간에 특정 함수를 반복적으로 호출한다. 이것은 당신이 사이트의 Ajax부분을 자동으로 수정하길 바랄때 유용할것이다.

  function periodicalUpdate() {
   new PeriodicalExecuter(refreshNews, 10);
}

function refreshNews() {
   //Ajax code to grab news and update DOM
}

PeriodicalExecuter 생성자는 첫번째 파라미터처럼 호출하기 위한 함수를 예상한다. 그리고 이것은 시간간격(초단위)이다. 비록 공통적인 setInterval()가 밀리세컨드를 다루지만 시간을 혼동하지 말라. 하지만 이 함수에서 우리는 초 단위로 다룬다. 예제는 Ajax가 복잡하다고 가정하지만, 이것은 어떤 이유로 페이지를 수정할수 있다. Prototype.js는 또한 Ajax를 다룰때 쉽게 처리할수 있는 Ajax.PeriodicalUpdater클래스를 가진다.

추가적인 고급기능.

우리가 Prototype.js가 제공하는 모든 함수와 메소드를 다룰수는 없지만, 이것은 여기서 다룰수 없는 것중에 몇몇을 강조해두는 것은 중요하다고 볼수 있다.

감독(observe) - 이 메소드 함수는 addEvent()와 비슷하고, DOM에 이벤트를 붙이기 위해 사용된다.

사용자 상호작용(User Interaction) - 당신은 사용자를 처리하는 key가 무엇을 만드는지 알기 위해 KEY_TAB와 같은 전역값내 빌드된것을 찾을수 있다. 추가적으로, 당신은 마우스를 클릭할때 위치를 찾을수 있다.

클래스 생성(Class Creation) - Prototype.js가 제공하는 것이 무엇인지 왜 멈추는가.? 같은 문법과 함수를 사용하여, 우리는 일관성을 유지하기 위해 자신만의 클래스를 빌드할수 있다. 생성자와 추가적인 메소드를 추가하는 것은 결코 쉽지 않다. 이것을 포장하기 위해 문서에서 Class.create() 를 보라.

당신이 저자를 알지못하고 무엇인가 발생한것을 제대로 이해하지 못할때 일반적인 코드/라이브러리를 사용하는 것을 받아들일수 있는가.? 당신이 코드를 테스트하고 사람/커뮤니티를 신뢰하는 만큼 나의 대답은 예이다. Prototype.js의 경우, 신뢰는 두개의 소스로부터 빌드된다. 먼저, Ruby on Rails 은 프로토타입 지원과 통합되었다. Ruby on Rails이 훌륭한 개발 기본이 된 이후로, 많은 버그가 발견되었고 Prototype.js가 좀더 안정화되도록 많은 문제가 해결되었다. 두번째, 개발자는 Ruby on Rails의 creator 를 고용하는 37시그널에서 근무한다. 나는 회사의 개발 환경을 신뢰할 뿐 아니라, Prototype.js가 테스트가 지속되고 지속적으로 발전하리라고 생각한다. 주어진 것으로 나의 프로젝트를 테스트하고, 나는 나의 모든 프로젝트에 이 라이브러리를 자신있게 사용한다.

Prototype.js는 이 튜토리얼에서 목록화된 것보다 두배 이상의 함수를 가지고 명백히 체크아웃할 가치가 있다. 만약 당신이 파일 사이즈(약 30K)가 꺼려진다면, 당신이 사용하지 않는 클래스는 뺄수 있고 사용자에게 제공하기 전에 PHP와 함께 자바스크립트 파일을 압축할수 있다는 것을 기억하라. 또한 당신이 약간의 메소드를 사용했다면 나머지는 배우기 쉽다. 그래서 배우는 과정은 매우 간단하다. 기본적으로 이것을 시도하기 위한 핑계거리는 없다. 위에서 본 예제는 Particletree에서 이것들을 다룬 방법이고 테스트없이 사용된 것은 없다. 기억하라. 이것은 Prototype.js에 대한 소개이고 그래서 비공식적인 프로토타입 문서를 참조하고 신뢰해야 하며 다양한 메소드를 찾는 어려운 작업을 위해 script.aculo.us 문서 위키 wiki를 보라. 언제나 처럼, 당신이 실수나 가능한 개선사항이 있다면, 우리에게 알려달라.



출처 : http://openframework.or.kr/JSPWiki/
링크1 : prototype.js 를 위한 개발자 노트
링크2 : Prototype in script.aculo.us wiki
2006/10/06 15:08 2006/10/06 15:08
이 글에는 트랙백을 보낼 수 없습니다
  • HTML에 JavaScript 삽입
    <script language="javascript">
    JavaScript Statements
    </script>


  • HTML에 JavaScript 코드 파일 삽입
    <script language="javascipt" src="src.js">
    </script>


  • 변수의 대소문자 구분

  • 변수에 포함된 데이터의 형을 지정하지 않고, JavaScript 인터프리터가 변수에 포함된 데이터 형을 추적하고 변환.

  • JavaScript 데이터 형
    • 숫 자 형 : 정수와 부동 소수
    • BOOLEAN : true, false
    • STRING : 작은 따옴표나 큰 따옴표에 들어가 있는 값으로, 특수문자 포맷 사용시에는 '\'와 함께 사용.
    • null : 아무런 값도 없는 것으로, 변수를 초기화 시키거나 어떤 값이나 이벤트를 지울 때 사용됨
    • undefined : 변수만 만들고, 값을 할당하지 않은 상태

  • 유형간의 변환
    • 스트링 피연산자가 비스트링 연산자와 사용된 경우 다른 연산자를 모두 스트링으로 변환
    • BOOLEAN값은 1과 0으로 변환되어 수치 연산을 지원
    • null값은 스트링 연산에 대해서는 "null", 논리 연산에서는 false, 그리고 수치 연산에서는 0으로 각각 변환
    • 변환 함수
      • eval() : 스트링 표현식을 수치값으로 변환하고, 파라미터가 수치형태가 아닌 스트링 값이면 에러 발생
      • parseInt() : 스트링에 포함된 첫번째 정수를 리턴하고, 스트링이 정수로 시작되지 않으면 0을 리턴
      • parseFloat() : 스트링에 포함된 첫번째 부동 소수를 리턴하거나 스트링이 적절한 부동 소수로 시작되지 않으면 0을 리턴

  • 배열 : 값의 시퀀스를 정렬할 수 있는 객체로, JavaScript의 특수형으로 배열 사용 전엔 반드시 선언해야 한다.
    • 배열 선언 예
      arrayName = new Array(arrayLength)
      arrayName = new Array()
      arrayName = new Array(value0,value1, ..., valuen)

  • JavaScript만의 특수 연산자
    • comma(,) 연산자 : 두 표현식을 계산하고, 두 번째 표현식의 값 리턴
    • delete 연산자 : 객체의 프로퍼티나 배열 인덱스의 요소 삭제하고, 항상 undefined 값 리턴
    • new 연산자 : 객체 형의 인스턴스를 만들기 위해 사용
    • typeof 연산자 : 연산자의 형을 식별하는 스트링 값을 리턴
    • void 연산자 : 값을 리턴하지 않는다

  • 지역 변수와 전역 변수 : 함수 안에서만 사용되는 것을 지역 변수라 하고, 프로그램 내에서 사용되는 변수를 전역 변수라 하는 데, 지역 변수 사용시 반드시 var 키워드와 함께 선언해야 함

이벤트 처리!!

  • 이벤트 정의와 사용
    • 이벤트 : 사용자가 웹페이지나 기타 다른 브라우저에 수행한 작업으로 인한 결과
    • 이벤트 처리 : 이벤트로 인해 수행되는 프로세스
    • 이벤트 핸들러 : 프로세스를 수행하는 코드
    • 사용 예 : 사용자가 링크 위로 마우스를 갖다 대면 다이얼로그 박스를 표시한다거나, 폼에 입력한 데이터를 검증한다거나, 버튼을 클릭할 때 애니메이션을 나타내거나, Java 애플릿과 브라우저 플러그인이 상호작용을 하도록 한다.

  • JavaScript가 정의한 이벤트
    HTML 태그 JavaScript 이벤트 설명
    다양 mouseMove 마우스 이동
    <A>..</A> Click 마우스로 링크를 클릭
    dbClick 마우스를 링크위에서 더블클릭
    mouseDown 마우스 버튼을 누름
    mouseUp 마우스 버튼을 놓음
    mouseOver 마우스를 링크위로 이동
    mouseOut 링크 위에 있던 마우스를 링크 밖으로 이동
    keyDown 사용자가 키를 누름
    keyUp 사용자가 키를 놓음
    keyPress 사용자가 키를 눌렀다가 놓음
    <IMG> abort 사용자 액션으로 인해 이미지 로딩 작업을 중단함
    error 이미지 로딩하는 동안 에러 발생
    load 이미지가 로드되고 화면에 나타남
    keyDown 사용자가 키를 누름
    keyUp 사용자가 키를 놓음
    keyPress 사용자가 키를 눌렀다가 놓음
    <AREA> mouseOver 마우스가 클라이언트측 이미지맵의 한 영역으로 이동함
    mouseOut 마우스가 이미지맵 영역 밖으로 이동
    dbClick 사용자가 이미지맵의 한 영역을 더블클릭함
    <BODY>..</BODY> Click 사용자가 문서의 본문을 클릭
    dbClick 문서의 본문을 더블 클릭함
    keyDown 키를 누름
    keyUp 키를 놓음
    keyPress 키를 눌렀다가 놓음
    mouseDown 마우스 버튼을 누름
    mouseUp 마우스 버튼을 놓음
    <BODY>..</BODY>
    <FRAMESET>..</FRAMESET>
    <FRAME>..</FRAME>
    blur 윈도우에서 현재 입력 포커스가 사라짐
    error 윈도우가 로드되는 동안 에러 발생
    focus 입력 포커스가 현재 윈도우로 이동
    load 윈도우 로딩이 완료됨
    unload 윈도우를 종료함
    move 윈도우가 이동됨
    resize 윈도우의 크기가 바뀜
    dragDrop 윈도우에 객체를 드롭
    <FORM>..</FORM> submit 사용자가 폼을 제출
    reset 사용자가 폼을 재설정
    <INPUT TYPE="text"> blur 현재 입력 포커스가 텍스트 필드에서 사라짐
    focus 현재 입력 포커스가 텍스트 필드로 이동
    change 텍스트 필드가 변경되어 현재 입력 포커스가 사라짐
    select 텍스트 필드에 있는 텍스트가 선택됨
    <INPUT TYPE="password"> blur 패스워드 필드에서 입력 포커스가 사라짐
    focus 패스워드 필드에 입력 포커스 생김
    <TEXTAREA>..</TEXTAREA> blur 텍스트 영역이 현재 입력 포커스가 사람짐
    focus 텍스트 영역에 입력 포커스 생김
    change 텍스트 영역이 변경되어 입력 포커스가 사라짐
    select 텍스트 영역에서 텍스트가 선택됨
    keyDown 키를 누름
    keyUp 키를 놓음
    keyPress 키를 눌렀다 놓음
    <INPUT TYPE="button"> Click 버튼이 클릭됨
    blur 입력할 수 없도록 버튼이 흐려짐
    focus 입력할 수 있도록 포커스 생김
    mouseDown 버튼 위에서 왼쪽 마우스 버튼 누름
    mouseUp 버튼 위에서 왼쪽 마우스 버튼 놓음
    <INPUT TYPE="submit"> Click 제출 버튼이 클릭됨
    blur 제출 버튼에서 입력 포커스가 사라짐
    focus 제출 버튼에 입력 포커스 생김
    <INPUT TYPE="reset"> Click 리셋 버튼이 클릭됨
    blur 리셋 버튼에서 포커스가 사라짐
    focus 리셋 버튼에서 포터스가 놓임
    <INPUT TYPE="radio"> Click 라디오 버튼이 클릭
    blur 라디오 버튼에서 입력 포커스가 사라짐
    focus 라디오 버튼에 입력 포커스 생김
    <INPUT TYPE="checkbox"> Click 체크 박스가 클릭
    blur 체크 박스에서 입력 포커스가 사라짐
    focus 체크 박스에 입력 포커스 놓임
    <INPUT TYPE="file"> blur 파일 업로드 폼 요소에서 입력 포커스 사라짐
    change 사용자가 업로드될 파일을 선택
    focus 파일 업로드 폼 요소에 입력 포커스 놓임
    <SELECT>..</SELECT> blur 선택 요소가 현재 입력 포커스 잃음
    change 선택 요소가 변경되어 입력 포커스가 사라짐
    focus 선택 요소에 현재 입력 포커스가 놓임

  • 이벤트 처리 속성
    이벤트핸들링속성실행되는 상황
    onAbort 이미지를 로딩하는 작업이 사용자의 한 행동으로 인해 취소되었음
    onBlur 문서나 윈도우, 프레임세트, 폼 요소에서 현재 입력 포커스가 사라짐
    onChange 텍스트 필드나 텍스트 영역, 파일 업로드 필드, 선택 항목이 변경되어 현재 입력 포커스가 사라짐
    onClick 링크나 클라이언트측 이미지맵 영역, 폼 요소가 클릭됨
    onDbClick 링크나 클라이언트측 이미지맵 영역, 문서가 더블 클릭됨
    onDragDrop 드래그된 객체가 윈도우나 프레임에 드롭됨
    onError 이미지나 윈도우, 프레임을 로딩하는 동안 에러가 발생함
    onFocus 문서나 윈도우, 프레임 세트, 폼 요소에 입력 포커스 놓임
    onKeyDown 키를 누름
    onKeyPress 키를 눌렀다 놓음
    onKeyUp 키를 놓음
    onLoad 이미지나 문서, 프레임이 로드됨
    onMouseDown 마우스 버튼 누름
    onMouseMove 마우스를 이동함
    onMouseOut 링크나 클라이언트측 이미지맵에서 마우스를 옮김
    onMouseOver 마우스를 링크나 클라이언트측 이미지맵으로 옮김
    onMouseUp 마우스 버튼을 놓음
    onMove 사용자가 윈도우나 프레임을 이동함
    onReset 폼의 리셋 버튼을 클릭하여 폼을 리셋시킴
    onResize 사용자가 윈도우나 프레임의 크기를 조절
    onSelect 텍스트는 텍스트 필드나 영역에서 선택됨
    onSubmit 폼이 제출됨
    onUnload 사용자가 문서나 프레임 세트를 종료함


객체 정의하기

  • 객체 유형 정의
    • 프로퍼티 : 객체에 들어 있는 데이터 값에 액세스할 때 사용.
    • 메소드 : 객체에 어떤 작업을 할 때 사용하는 함수.
  • 객체 유형 만들기
    사용자가 직접 객체 유형을 정의하고 특정 객체 인스턴스를 만들 수 있 는데 이렇게 만들려면 객체 유형의 특정 인스턴스를 만들 때 사용되는 함수를 정의하기만 하면 된다. 본래 이러한 생성자 함수는 다음과 같은 일을 한다.
    • 객체 유형의 프로퍼티에 값을 할당한다.
    • 객체 유형의 메소드로 사용할 수 있는 다른 함수를 지정한다.
  • 객체 사용 예
    1. table 객체의 정의 (table.js)
      function table_getValue(row,col){
       return this.data[row* this.columns+col ];
      }
      function table_setValue(row,col,value){
       this.data[row* this.columns+col ]=value;
      }
      function table_set(contents){
       var n=contents.length;
       for(var j=0;jthis.data[j]
      =contents[j];
      }
      function table_isHeader(row,col){
       return this.header[row* this.columns+col ];
      }
      function table_makeHeader(row,col){   this.header[row* this.columns+col ]=true;
      }
      function table_makeNormal(row,col){   this.header[row* this.columns+col ]=false;
      }
      function table_makeHeaderRow(row){   for(var j=0;j< this.columns+j)
         this.header[row* this.columns+col ]=true;
      }
      function table_makeHeaderColumn(col){   for(var i=0;i< this.rows;++i)
         this.header[i* this.columns+col ]=true;
      }
      function table_write(doc){
       doc.write("<TABLE BORDER="+ this.border+">");
       for(var i=0;i< this.rows;++i) {
         doc.write("<TR>");
         for(var j=0;j< this.columns;++j) {
           if( this.header[i* this.columns+j ]) {
             doc.write("<TH>");
             doc.write( this.data[i* this.columns+j ]);
             doc.write("</TH>");
           }
           else {
             doc.write("<TD>");
             doc.write( this.data[i* this.columns+j ]);
             doc.write("</TD>");
           }
         }
         doc.writeln("</TR>");
       }
       doc.writeln("</TABLE>");
      }
      funtion table(rows,columns) {
       this.rows=rows
       this.columns=columns
       this.border=0
       this.data=new Array(rows*columns)
       this.header=new Array(rows*columns)
       this.getValue=table_getValue
       this.setValue=table_setValue
       this.set=table_set
       this.isHeader=table_isHeader
       this.makeHeader=table_makeHeader
       this.makeNormal=table_makeNormal
       this.makeHeaderRow=table_makeHeaderRow
       this.makeHeaderColumn=table_makeHeaderColumn
       this.write=table_write
       
      }

    2. table 객체 사용하기
      <HTML>
      <HEAD>
      <TITLE>Defining Object Types</TITLE
      <SCRIPT LANGUAGE="JavaScript" SRC="table.js"><!-
      //-></SCRIPT>
      </HEAD>
      <BODY>
      <H1>Defining Object Types</H1>
      <SCRIPT LANGUAGE="JavaScript"><!-
      t=new table(3,4)
      contents=new
      Array("This","is","a","test","of","the","table","object.","Let's","see","it","work")
      t.set(contents)
      t.border=4
      t.makeHeaderColumn(0)
      t.write(document)
      //-></SCRIPT>
      </BODY>
      </HTML>

    3. 객체 유형에 프로퍼티와 메소드 추가
      : prototype 프로퍼티를 통해서 인스턴스화할 수 있는 미리 정의된 객체 유형에 프로퍼티와 메소드 추가
      사용 예
      <HTML>
      <HEAD>
      <TITLE>Updating Object Types </TITLE>
      <SCRIPT LANGUAGE="JavaScript" SRC="table.js"><!-
      //-></SCRIPT>
      </HEAD>
      <BODY>
      <H1>Updating Object Types</H1>
      <SCRIPT LANGUAGE="JavaScript"><!-
      function table_colorWrite(doc){
       ........
       함수 정의
       ........
       ........
      }
      t=new table(3,4)
      table.prototype.bgColor="Cyan"
      table.prototype.colorWrite=table_colorWrite
      .............
      .............
      t.colorWrite(document)
      //-></SCRIPT>
      </BODY>
      </HTML>

    4. 프로퍼티와 메소드 삭제
      delete objectName.propertyName
      delete objectName.methodName


브라우저 객체

객 체 용 도
window 객체 브라우저 윈도우나 윈도우 안에 있는 프레임에 액세스할 때 사용한다. 프로퍼티와 메소드를 참조할 때, window 객체가 존재하는 경우에는 "window."접두사를 붙일 필요가 없다
document 객체 현재 윈도우에 로드되어 있는 문서에 액세스할 때 사용한다. document 객체는 컨텐트를 제공하는 HTML 문서, 즉 HEAD와 BODY 태그가 있는 문서를 의미한다.
location 객체 URL을 나타낼 때 사용한다. 이 객체는 URL객체를 만들거나 URL의 일부분에 액세스하거나 기존의 URL을 수정할 때 사용할 수 있다.
history 객체 한 윈도우 안에서 액세스된 URL의 히스토리를 유지할 때 사용
frame 객체, frames 배열 HTML 프레임에 액세스할 때 사용
frames 배열은 윈도우안에 있는 모든 프레임에 액세스할 때 사용
link 객체, links 배열 하이퍼텍스트 링크의 텍스트 기반이나 이미지 기반 소스 앵커(anchor)에 액세스할 때 사용
links배열은 문서 안에 있는 모든 link 객체에 액세스할 때 사용한다. I.E.는 link 객체의 anchor객체를 결합한다.
anchor 객체, anchors 배열 하이퍼텍스트 링크의 타켓에 액세스할 때 사용
anchors 배열은 문서 안에 있는 모든 anchor 객체에 액세스할 때 사용
image객체, images 배열 HTML 문서에 삽입되어 있는 이미지에 액세스할 때 사용
images 배열은 문서 안에 있는 모든 image 객체에 액세스할 때 사용
area 객체 클라이언트측 이미지맵 안에 있는 영역에 액세스할 때 사용
applet 객체, applets 배열 Java 애플릿에 액세스할 때 사용
애플릿 배열은 문서 안에 있는 모든 애플릿에 액세스할 때 사용
event 객체, Event 객체 이벤트 발생에 대한 정보에 액세스할 때 사용
event 객체는 특정 이벤트에 대한 정보 제공
Event 객체는 이벤트를 식별하는 데 사용하는 상수 제공
form 객체, forms 배열 HTML 폼에 액세스시 사용
forms 배열은 문서 안에 있는 모든 폼에 액세스시 사용
element 객체 폼 안에 들어있는 모든 폼 요소에 액세스시 사용
text 객체 폼의 텍스트 필드에 액세스시 사용
textarea 객체폼의 텍스트 영역 필드에 액세스시 사용
radio 객체 폼의 라디오 버튼 세트에 액세스하거나 세트 안에 있는 각각의 버튼에 액세스할 때 사용
checkbox 객체 폼의 체크 박스에 액세스할 때 사용
button 객체 Submit나 Reset 버튼이 아닌 폼 버튼에 액세스시 사용
reset 객체 폼의 Reset 버튼에 액세스시 사용
selet 객체 폼의 선택 리스트에 액세스시 사용
option 객체 option 객체는 선택 리스트의 요소에 액세스시 사용
password 객체 폼의 패스워드 필드에 액세스시 사용
hidden 객체 폼의 숨겨진 필드에 액세스시 사용
FileUpload 객체 폼의 파일 업로드 요소에 액세스시 사용
navigator 객체 스크립트를 실행하고 있는 브라우저에 대한 정보에 액세스시 사용
screen 객체 사용자의 화면의 색상 깊이와 크기에 대한 정보에 액세스시 사용
embed 객체, embeds 배열 삽입된 객체에 액세스시 사용
embeds 배열은 문서 안에 삽입된 모든 객체에 대한 액세스 제공
mimeType 객체, mimeTypes 배열 브라우저가 제공하는 특징 MIME 유형에 대한 정보에 액세스시 사용
mimeTypes 배열은 제공하는 모든 mimeType 객체의 배열
I.E.는 빈 배열을 리턴하면서 mimeTypes에 대해서 임시적으로 지원
plugin 객체, plugins 배열 특정 브라우저 플러그인에 대한 정보에 액세스시 사용
plugins 배열은 브라우저가 지원하는 모든 플러그인의 배열
I.E.는 빈 배열을 리턴하면서 plugins에 대해서 임시적으로 지원


window 객체

  • 모든 브라우저 스크립트의 기본적인 것으로, 브라우저가 자동으로 정의하는 최상위 레벨의 객체이다. 현재 열려 있는 각 윈도우에 대해 별도의 window 객체가 정의된다.

window 객체의 프로퍼티
프로퍼티 설 명
closed 윈도우가 닫혀 있는지 식별
defaultStatus 브라우저 윈도우의 하단의 상태바에 나타나는 디폴트 상대 메시지를 지정
document 윈도우에 표시되어 있는 현재 문서를 지정하는 객체
frames 윈도우 객체에 들어 있는 모든 프레임 객체로 구성된 배열
history 마지막으로 윈도우로 로드된 URL의 리스트를 포함하는 윈도우의 히스토리 객체
length window에 들어 있는 프레임의 수 식별
location window 객체와 관련된 URL을 지정하는 객체
name 윈도우의 이름 지정
offscreenBuffering 윈도우 정보의 오프스크린 버퍼링이 사용될 것인지를 지정하는 부울값
오프스크린 버퍼링은 윈도우를 나타내기 전에 윈도우의 모든 요소를 로드할 때 사용
opener 윈도우를 만들거나 열 수 있도록 해주는 window 객체 지정
parent 특정 윈도우를 포함하는 윈도우를 지정하는 시너님
self 참조될 현재 윈도우를 지정하는 시너님
status 브라우저 윈도의 하단의 상태 표시줄에 나타날 임시 메시지를 지정
top 중첩된 일련의 윈도우에서 맨 위에 있는 브라우저 윈도우를 의미하는 시너님
window 참조될 현재 윈도우를 식별하는 시너님

window 객체의 메소드
메 소 드 설 명
alert(text) 경고 다이얼로그 박스를 표시
blur() 포커스를 윈도우에서 옮긴다
setInterval(expression,milliseconds) 지정된 타임아웃 인터벌이 지난 이후에 표현식을 반복해서 평가하거나 함수를 불러온다.
clearInterval(interval) 이전에 설정된 인터벌 타이머를 클리어
setTimeout(expression,milliseconds) 타임아웃 기간이 지난 이후에 표현식을 평가하거나 함수를 호출한다.
clearTimeout(timer) 이전에 설정된 타임아웃을 클리어
close() 지정된 윈도우를 닫는다.
confirm(text) 확인 다이얼로그 박스를 나타낸다.
focus() 윈도우로 포커스를 가져간다.
open(url,name,[options]) 새로운 윈도우를 열고 새로운 window 객체를 만듬
prompt(text,defaultInput) 프롬프트 다이얼로그 박스를 나타낸다.
scroll(x,y) 윈도우를 특정 위치까지 스크롤한다.

open() 메소드의 옵션
옵 션 설 명
toolbar yes no 윈도우에 툴바 제공
location yes no 윈도우에 위치 필드 제공
directories yes no 디렉토리 버튼 제공
status yes no 상태 표시줄 제공
menubar yes no 메뉴바 제공
scrollbars yes no 스크롤 바 제공
resizable yes no 윈도우 크기 조절 가능
width 정수 윈도우의 폭(픽셀)
height 정수 윈도우의 높이(픽셀)


frame 객체

  • 프레임은 윈도우를 독립된 표시 영역들로 분할한 후, 이 영역들에 표시되는 정보들을 강력하게 컨트롤 할 수 있게 해준다.
  • 프레임 객체의 프로퍼티와 메소드는 window 객체와 같지만, close() 메소드는 지원하지 않는다.


document 객체

  • JavaScript 에서 아주 중요한 객체로, 이 객체를 사용하면 로드될 문서를 업데이트하고 로드된 문서 안에 있는 HTML 요소에 액세스할 수 있다.

프로퍼티 설 명
alinkColor <BODY> 태그의 alink 속성의 값 지정
anchor 문서에 들어 있는 배열을 참조하는 객체
anchors 문서에 들어 있는 모든 앵커의 배열
applet 문서에 들어 있는 애플릿을 참조하는 객체
applets 문서에 들어 있는 모든 애플릿의 배열
area 문서 안의 이미지맵 영역을 참조하는 객체
bgColor <BODY> 태그의 bgColor 속성의 값 식별
cookie 쿠키의 값 식별
domain 문서가 로드되는 서버의 도메인 이름 식별
embeds 문서안의 모든 플러그인의 배열
fgColor <BODY> 태그의 text 속성값 지정
form 문서 안의 폼을 참조하는 객체
Forms[] 문서 안의 모든 폼의 배열
image 문서 안의 이미지를 참조하는 객체
Images[] 문서 안의 모든 이미지의 배열
lastModified 문서가 마지막으로 수정된 날짜
link 문서 안의 링크를 참조하는 객체
links 문서 안의 모든 링크의 배열
linkColor <BODY> 태그의 link 속성의 값 식별
plugin 문서 안의 플러그인을 참조하는 객체
plugins[] 브라우저가 지원하는 플러그인을 나타내는 객체의 배열
referrer 문서에 대한 링크를 제공하는 문서의 URL
title 문서의 타이틀
URL 문서의 URL
vlinkColor <BODY> 태그의 vlink 속성의 값 식별

document 객체의 메소드
메 소 드 설 명
close() 문서의 객체를 만드는 데 사용된 스트림
open([mimeType][,"replace"]) 선택적인 MIME 유형으로 문서 객체를 만들 때 사용되는 흐름을 개시한다. "replace" 파라미터는 text/html MIME 유형과 함께 사용되어 히스토리 리스트에 있는 현재 문서를 대체
write(expr1[,expr2...,exprN]) 문서에 표현식의 값을 기록
write(expr1[,expr2...,exprN]) 개행 문자가 다음에 따라오는 문서에 표현식의 값 기록


navigator 객체

  • navigator 객체는 window 객체와 마찬가지로 브라우저 객체 모델에서 최상위 레벨의 객체이며, 스크립트를 실행할 때 사용되는 브라우저의 종류와 버전에 대한 정보 제공한다.

navigator 객체의 프로퍼티
프로퍼티 브라우저 지원 설 명
appCodeName N2, I.E3 브라우저 색상 이름
AppMinorVersion I.E4 브라우저 버전 번호
appName N2, I.E3 브라우저 이름
appVersion N2, I.E3 브라우저의 버전
browserLanguage I.E4 브라우저에 설정되어 있는 언어
connectionSpeed I.E4 브라우저가 네트워크에 연결되는 속도
cookieEnabled I.E4 브라우저가 쿠키를 허용하도록 설정되어 있는지의 여부
cpuClass I.E4 브라우저 실행시 사용되는 마이크로프로세서의 유형
onLine I.E4 브라우저가 현재 온라인 연결을 가지고 있는지 여부
Language N4, I.E4 브라우저에 설정되어 있는 언어
mimeTypes N3, I.E4 현재 브라우저가 지원하는 모든 MIME 유형의 배열
platform N4, I.E4 브라우저가 실행되는 운영체제 플랫폼
plugins N3, I.E4 현재 브라우저에 설치된 모든 플러그인의 배열
systemLanguage I.E4 운영체제의 디폴트 언어
userAgent N2, I.E3 브라우저에서 서버로 전송된 HTTP 프로토콜의 사용자 에이전트 헤더
userLanguage I.E4 사용자가 사용하는 언어
userProfile I.E4 사용자 프로파일 정보에 대한 액세스를 제공하는 객체

navigator 객체의 메소드
메 소 드 설 명
javaEnabled() 사용자가 브라우저의 Java 기능을 켜두었는지의 여부를 나타내는 부울값 리턴
taintEnabled() 사용자가 data tainting(보안 메커니즘)을 활성화했는지 여부를 나타내는 부울값 리턴
preference 서명이 되지 않은 스크립트가 보안 관련 프로퍼티를 얻고 설정할 때 사용


event 객체

event 객체의 프로퍼티
프로퍼티 브라우저 설 명
dataNDragDrop 이벤트로 인해 드롭된 객체의 URL이 들어있는 스트링 배열
height, widthN윈도우나 프레인의 길이와 너비(픽셀표시)
pageX, pageYN픽셀로 나타낸 커서의 수평/수직 위치(페이지에서의 상대적위치)
screenX, screenYN, I.E픽셀로 나타낸 커서의 수평/수직 위치(화면에서의 상대적 위치)
layerX, layerYN픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 레이어에 대한 상대적 위치. Resize 이벤트와 함께 사용하면 layerX와 layerY가 이벤트가 타겟으로 하는 객체의 길이와 너비 지정
clientX와 clientYI.E픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 웹페이지에서의 상대적 위치
offsetX, offsetYI.E픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 컨테이너에 대한 상대적 위치
X, YI.E픽셀로 나타낸 커서의 수평/수직 위치, 이벤트가 발생한 문서에 대한 상대적 위치
targetN이벤트가 전송된 원래 객체
srcElementI.E이벤트가 전송된 원래 객체
typeN, I.E발생한 이벤트 유형
whichN눌려진 마우스 버튼(왼:1, 가:2, 오:3)이나 눌려진 키의 ASCII값
keyCodeI.E키 누름과 연관된 Unicode 키 코드를 식별
buttonI.E이벤트가 발생했을 때 눌려진 마우스 버튼 식별(0:눌려진버튼없음, 1:왼, 2:오, 4:가)
modifiersN마우스나 키 이벤트와 연관된 수정자 키(ALT_MASK,CONTROL_MASK,SHIFT_MASK,META_MASK)를 식별
altkey,ctrlkey,shiftkeyI.Etrue나 false로 설정하여 이벤트가 발생했을 때 Alt키와 Control키, Shift 키 중에 어떤 것이 눌려졌는지 알려준다.
cancelBubbleI.Etrue나 false로 설정하여 이벤트 버블링을 취소하거나 활성화한다.
fromElement, toElementI.E이동 중인 HTML 요소 지정
reasonI.E데이터 소스 객체에 대한 데이터 전송 상태를 나타내는데 사용
returnValueI.Etrue나 false로 설정하여 이벤트 핸들러의 리턴값을 나타낸다. 이벤트 핸들러에서 true나 false를 리턴하는 것과 같다.
srcFilterI.Eonfilterchange 이벤트를 시작하는 filter객체 지정

screen 객체

  • screen 객체의 프로퍼티
    • height : 사용자의 화면의 현재 높이(픽셀)
    • width : 사용자의 화면의 현재 너비(픽셀)
    • colorDepth : 사용자의 화면/비디오 카드에서 현재 지원하는 색상당 바이트 수


    form 객체

    • document 객체의 프로퍼티로 액세스되고, form 객체는 문서 안의 폼에 액세스할 수 있도록 해주고, 폼 관련 이벤트에 응답을 할 수 있도록 해주기 때문에 중요하다.
    form 객체의 프로퍼티
    프로퍼티 설 명
    action <FORM> 태그의 HTML action 속성에 대한 액세스 제공
    button GUI 컨트롤 버튼을 나타내는 객체
    checkbox 체크 박스 필드를 나타내는 객체
    elements 폼 안에 포함되어 있는 모든 필드와 GUI 컨트롤을 포함하는 배열
    encoding <FORM> 태그의 HTML enctype 속성에 대한 액세스 제공
    FileUpload 파일 업로드 폼 필드를 나타내는 객체
    hidden 숨겨진 폼 필드를 나타내는 객체
    length elements 배열의 길이에 대한 액세스 제공
    method <FORM> 태그의 HTML method 속성에 대한 액세스 제공
    name 폼의 이름 식별
    password 패스워드 필드를 나타내는 객체
    radio 라디오 버튼 필드를 나타내는 객체
    reset reset 버튼을 나타내는 객체
    select 선택 항목 리스트를 나타내는 객체
    submit submit 버튼을 나타내는 객체
    target <FORM> 태그의 HTML target 속성에 대한 액세스 제공
    text 텍스트 필드를 나타내는 객체
    textarea 텍스트 영역 필드를 나타내는 객체

    form 객체의 메소드
    메 소 드 설 명
    handleEvent() 지정된 이벤트에 대한 폼의 이벤트 핸들러를 호출할 때 사용
    submit() 폼을 제출시 사용
    reset 폼의 엔트리를 디폴트 값으로 재설정시 사용

    form 요소 객체의 프로퍼티
    객 체 프로퍼티 설 명
    button name 버튼의 name 속성에 대한 액세스 제공
    type 객체의 유형 지정
    value 객체의 값 지정
    checkbox checked 체크박스가 현재 체크되어 있는지를 식별
    defaultChecked 체크박스가 디폴트로 체크되어 있는지 식별
    name 체크박스의 HTML name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    FileUpload name 객체의 name 속성에 대한 액세스 제공
    type 객체의 type 속성에 대한 액세스 제공
    value 객체의 값 식별
    hidden name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    password defaultChecked객체의 디폴트 값 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    radio checked 라디오 버튼이 체크되어 있는지 식별
    defaultChecked 라디오 버튼이 디폴트로 체크되어 있는지 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    reset name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    select length 선택 리스트의 길이 식별
    name 객체의 name 속성에 대한 액세스 제공
    option 선택 리스트가 제공하는 옵션 식별하는 배열
    selectedIndex 선택 리스트 안에서 처음 선택된 옵션 식별
    type 객체의 유형 식별
    submit name 객체의 name 속서에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    text defaultValue 텍스트 필드에 나타나는 디폴트 텍스트를 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별
    textarea defaultValue 텍스트 영역 필드에 나타나게 되는 디폴트 텍스트 식별
    name 객체의 name 속성에 대한 액세스 제공
    type 객체의 유형 식별
    value 객체의 값 식별

    form 요소 객체의 메소드
    객 체 메 소 드 설 명
    button Click() 클릭된 버튼 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    checkbox Click() 클릭된 체크 박스 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    FileUpload blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 입력 영역을 선택
    hidden 없음
    password blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 패스워드 필드에 나타나는 텍스트를 하이라이트
    radio Click() 라디오 버튼 클릭 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    reset Click() 리셋 버튼 클릭 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    select blur() 포커스 잃음
    focus() 포커스 맞춤
    submit Click() 제출 버튼 클릭 시뮬레이트
    blur() 포커스 잃음
    focus() 포커스 맞춤
    text blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 텍스트 필드에 있는 텍스트 하이라이트
    textarea blur() 포커스 잃음
    focus() 포커스 맞춤
    select() 텍스트 영역에 있는 텍스트 하이라이트


    location 객체

    • 윈도우에 로드되어 있는 현재 문서의 URL에 액세스하거나 새로운 문서를 로드할 때 사용

    location 객체의 프로퍼티
    프로퍼티 설 명
    hash URL의 앵커 부분(존재하는 경우)
    host URL의 hostname:port 부분
    hostname URL의 host부분
    href 전체 URL
    pathname URL의 경로명 부분
    port URL의 포트 부분
    protocol URL의 프로토콜 부분
    search URL의 쿼리 스트링 부분

    location 객체의 메소드
    • reload() : 윈도우의 현재 문서를 브라우저의 Reload 버튼에서 사용하는 정책에 따라 다시 로드
      • Every time : 문서는 매번 서버에서 다시 로드
      • Once per session : 서버의 문서의 날짜가 캐시에 저장되어 있는 문서보다 더 최신 날짜라는 것을 나타내면 문서는 세션당 한 번씩 서버에서 다시 로드된다. 문서가 캐시에 없는 경우에는 서버에서 로드
      • Never : 문서는 가능하면 캐시에서 다시 로드, 그렇지 않으면 서버에서 로드
    • replace() : URL을 파라미터로 취하여, 현재 문서 히스토리 목록에 있는 현재 문서위로 그 URL의 문서를 로드, 그러면 브라우저의 Back버튼을 클릭하여 이전 문서로 돌아갈 수 없음


    link 객체

    • link 객체는 document 객체의 프로퍼티로, 문서에 들어있는 텍스트나 이미지 링크를 캡슐화
    • links 배열은 문서에 들어있는 모든 링크의 배열
    • link 객체의 메소드
      handleEvent() : event 객체를 인자로 취하며 그 이벤트에 대해 적당한 이벤트 핸들러 호출

    link 객체의 프로퍼티
    프로퍼티 설 명
    hash URL의 앵커 부분(존재하는 경우)
    host URL의 hostname:port 부분
    hostname URL의 host부분
    href 전체 URL
    pathname URL의 경로명 부분
    port URL의 포트 부분
    protocol URL의 프로토콜 부분
    search URL의 쿼리 스트링 부분
    target 링크의 HTML, target 속성


    anchor 객체

    • HTML 문서 안에서 이름이 지정된 오프셋으로 사용되는 앵커 의미
    • anchors 배열에는 문서의 모든 앵커가 들어있음
    • 프로퍼티나 메소드 또는 이벤트를 전혀 가지고 있지 않음
    • HTML 문서와 관련하여 정의된 이름이 지정된 오프셋을 추적할 때 사용
    • anchor 객체는 HREF 속성을 포함하는 경우에 link 객체가 된다.


    history 객체

    • history 객체의 프로퍼티
      • current : 윈도우에 나타나는 현재 문서의 URL
      • length : History 리스트의 길이
      • next : History 리스트에서의 다음 URL
      • previous : History 리스트에서의 이전 URL
    • history 객체의 메소드
      • back() : History 리스트에 이전 문서를 로드. 브라우저의 Back 버튼을 클릭하는 것과 같은 효과
      • forward() : History 리스트에 다음 문서를 로드. 브라우저의 Forward 버튼을 클릭하는 것과 같은 효과
      • go() : History 리스트에 있는 특정 문서로 감
        • go(n) : n>0인 경우, 이 메소드는 History 리스트에서 n개의 엔트리가 앞에 있는 문서를 로드, n=0인 경우에는 현재 문서가 다시 로드되고, n<0인 경우엔 History 리스트에서 n개의 엔트리 뒤에 있는 문서를 로드
        • go(string) : go()는 이 스트링을 서브스트링으로 갖고 있는 URL의 History 리스트에서 가장 가까운 문서를 로드


    image 객체

    • document 객체의 프로퍼티
    • 문서와 함께 로드된 이미지에 대한 액세스 제공
    • images 배열은 문서 안에 지정되어 있는 각각의 <IMG>태그에 대한 엔트리가 들어있음
    • image 객체 유형을 사용하면 키워드와 생성자로 새로운 image 객체를 명시적으로 만들 수 있다. Image() 생성자는 웹페이지의 일부로서 처음에 나타나지 않는 이미지를 만들고 미리 로드할 때 사용한다. 이러한 image 객체는 브라우저의 캐시에 저장되면 이미 나타난 이미지를 대체할 때 사용
      * Image() 생성자를 사용하여 캐시된 이미지 만드는 예 cachedImage=new Image()
      cachedImage.src="myImage.gif"
      = > 첫번째 문장은 새로운 image 객체를 만들고 그것을 cachedImage 변수에 대입하고, 두번째 문장은 image 객체의 src프로퍼티를 myImage.gif 이미지 파일로 설정한다. 이 경우 myImage.gif는 브라우저 캐시로 로드된다. 그러면 로드된 이미지는 cachedImage 변수를 사용하여 참조 가능하다.

      image 객체의 프로퍼티
      프로퍼티 설 명
      border <:IMG> 태그의 BORDER 속성의 값
      complete 이미지가 완전히 로드되었는지 식별
      height <:IMG> 태그의 HEIGHT 속성의 값
      hspace <IMG> 태그의 HSPACE 속성의 값
      lowsrc <IMG> 태그의 LOWSRC 속성의 값
      name <IMG> 태그의 NAME 속성의 값
      prototype image 객체에 사용자 지정 프로퍼티를 추가할 때 사용
      src <IMG> 태그의 SRC 속성의 값
      vspace <IMG> 태그의 VSPACE 속성의 값
      width <IMG> 태그의 WIDTH 속성의 값


    area 객체

    • 이미지맵은 여러 가지 다른 영역으로 나누어져 있는 이미지로서 각각의 영역은 자체 URL과 관련되어 있다. 그리고 이러한 영역과 관련된 사용자 처리 방식으로 area 객체를 제공

    area 객체의 프로퍼티
    프로퍼티 설 명
    hash area 객체의 HREF 속성의 파일 오프셋 부분
    host area 객체의 HREF 속성의 호스트 이름 부분
    hostname area 객체의 HREF 속성의 host:port 부분
    href area 객체의 완전한 HREF 속성
    pathname area 객체의 HREF 속성의 경로명 부분
    port area 객체의 HREF 속성의 포트 부분
    protocol area 객체의 HREF 속성의 프로토콜 부분
    search area 객체의 HREF 속성의 쿼리 스트링 부분
    target area 객체의 TARGET 속성


    Array 객체

    • Array 객체를 사용하면 배열을 객체처럼 액세스 가능
    • Array 객체의 프로퍼티
      • length : 배열의 길이 식별
      • prototype : 모든 객체 유형이 지원하는 프로퍼티로 객체 유형에 대해 추가적인 프로퍼티 및 메소드 정의 가능
    • Array 객체의 메소드
      • toString() : 배열의 스트링 버전 리턴, 배열 요소는 컴마로 구분
      • join(separator) : 배열의 스트링 버전 리턴, 배열 요소는 seperator 스트링으로 구분, 분리자가 없으면 컴마로 구분
      • reverse() : 배열의 요소를 역순으로 바꿈
      • sort(comparisionFunction) : 비교 연산에 따라 배열의 요소 정렬. 비교 함수가 지정되면, 배열 요소는 사전순서로 정렬. 비교 연산이 지정되면 두개의 파라미터 p1,p2를 취하고, p1이 p2보다 작은 경우에는 음의 정수를 리턴하고, 같으면 0을 리턴하고, p1이 p2보다 크면 양의 정수 리턴


    Boolean 객체

    • Boolean 객체를 사용하면 부울값은 객체로서 액세스 가능
    • Boolean 객체는 생성자에 대한 인자로서 값을 식별하여 만들어짐 myBoolean=new Boolean(false)
      yourBoolean=new Boolean(true)
    • Boolean 객체의 프로퍼티
      • prototype : 모든 객체 유형이 지원하는 프로퍼티로 객체 유형에 대해 추가적인 프로퍼티 및 메소드 정의 가능
    • Boolean 객체의 메소드
      • toString() : 부울값에 해당하는 스트링 리턴
      • valueOf() : 객체의 값에 따라 true나 false로 리턴


    Date 객체

    Date 객체의 메소드
    메 소 드 설 명
    getDate()
    getUTCDate()
    setDate()
    setUTCDate()
    Date 객체의 날짜를 설정하거나 리턴
    getDay()
    getUTCDay()
    Date 객체의 한 주의 날짜를 설정하거나 리턴
    getHours()
    getUTCHours()
    setHours()
    setUTCHours()
    Date 객체의 시간를 설정하거나 리턴
    getMilliseconds()
    getUTCMilliseconds()
    setMilliseconds()
    setUTCMilliseconds()
    Date 객체의 밀리초 값을 설정하거나 리턴
    getMinutes()
    getUTCMinutes()
    setMinutes()
    setUTCMinutes()
    Date 객체의 분을 설정하거나 리턴
    getMonth()
    getUTCMonth()
    setMonth()
    setUTCMonth()
    Date 객체의 달을 설정하거나 리턴
    getSeconds()
    getUTCSeconds()
    setSeconds()
    setUTCSeconds()
    Date 객체의 초를 설정하거나 리턴
    getTime()
    getUTCTime()
    Date 객체의 시간을 설정하거나 리턴
    getTimeZoneOffset() Date 객체의 시간대 오프셋(분)을 리턴
    getYear()
    getFullYear()
    getUTCFullYear()
    setYear()
    setFullYear()
    setUTCFullYear()
    Date 객체의 연도를 리턴하거나 설정한다. 완전한 연도를 나타내는 방법으로 4자리 연도 값을 사용한다.
    toGMTString() 날짜를 Internet GMT(Greenwich Mean Time) 포맷의 스트링으로 변환
    toLocaleString() 날짜를 로케일(locale)포맷의 스트링으로 변환. 로케일 포맷이란 사용자가 위치해 있는 지형적 위치에서 일반적으로 사용하는 포맷 의미
    toString() Date 객체의 스트링 값을 리턴
    valueOf() 1970년 1월 1일 자정 이후의 밀리초 값 리턴
    toUTCString() UTC에서 시간을 나타내는 스트링 값을 리턴

    Date 생성자
    생 성 자 설 명
    Date() 현재 날짜와 시간으로 Date 인스턴스 만듬
    Date(dateString) dateString 파라미터에 지정되어 있는 날짜로, Date 인스턴스를 만든다. dateString의 포맷은 "월,일,연도,시:분:초"
    Date(milliseconds) 1970년 1월 1일 자정 이후 지정된 밀리초 값으로 Date 인스턴스를 만든다.
    Date(year,month,
    day,hours,minutes,
    seconds,milliseconds)
    년,월,일,시,분,초,밀리초 정수에 따라 지정된 날짜로 Date 인스턴스를 만든다. 연도와 월 파라미터는 제공되어야 하고 다른 나머지 파라미터가 포함되면 앞에 오는 모든 파라미터가 제공되어야 한다.


    Function 객체

    • 함수를 객체처럼 액세스 가능하고, 이 객체는 스크립트를 실행하는 동안에 함수를 동적으로 만들고 호출할 때 사용
    • Function 객체는 함수의 파라미터와 본문을 Function() 생성자에 제공하면 된다.
      variable=new Function("p1","p2", ... ,"pn","body")
    • Function 객체 프로퍼티
      • length : 함수에 대해 정의된 파라미터의 숫자 식별
      • prototype : 모든 객체 유형이 지원하는 프로퍼티로 객체 유형에 대해 추가적인 프로퍼티 및 메소드 정의 가능
      • arguments : 호출시 함수에 전달되는 인자를 가리키는 배열
      • caller : 특정 함수를 호출한 함수를 가리킴
    • Function 객체의 메소드
      • toString() : 함수의 스트링 형태 리턴
      • valueOf() : 함수 자체 리턴


    Global 객체

    • new Global() 을 통해서 명시적으로 만들거나, 참조할 수 없다. 대신 해당 프로퍼티와 메소드가 전역 변수와 함수로 직접 참조됨
    • Global 객체의 프로퍼티
      • Nan : 숫자가 아니라는 의미
      • Infinity : 양수 무한대 값 의미
    • Global 객체의 메소드
      • escape(string) : string을 새로운 스트링으로 변환
      • eval(x) : 표현식 x의 값을 계산하고 리턴
      • inFinite(number) : number가 유한하면 true를 리턴하고, 무한하면 false를 리턴
      • inNaN(number) : number가 숫자가 아니면 true를 리턴하고, 숫자이면 false를 리턴
      • parseFloat(string) : string을 부동 소수 값으로 파싱
      • parseInt(string,radix) : string을 밑이 radix인 정수로 파싱
      • unescape(string) : escape()에 들어 있는 스트링을 원래의 값으로 되돌린다.


    Math 객체

    • 수학적 상수와 함수의 표준 라이브러리 제공
    • Math의 특수 인스턴스는 Math가 내장 객체이고 객체 유형이 아니기 때문에 만들어지지 않는다.

    Math 프로퍼티
    프로퍼티 설 명
    E Euler의 상수. 이것은 계산을 하는 어디에서나 발견할 수 있으며 자연대수의 기초
    LN2 2의 자연대수. 이것은 자연대수와 밑이 2인 대수 사이의 전환에 사용되는 간단한 상수
    LN10 10의 자연대수. LN2와 마찬가지로 대수 변환에 사용
    LOG2E 밑이 2인 E의 대수. 이것은 밑이 10인 대수를 밑이 E인 대수로 변환시 사용
    PI 원의 원주 대 지름의 비율
    SQRT1_2 1/2의 제곱근은 많은 삼각법 계산에서 사용
    SQRT2 2의 제곱근은 대수식에서 흔히 사용

    Math 메소드
    메 소 드 설 명
    abs(x) x의 절대값 리턴
    acos(x) x의 아크 코사인값 라디안으로 리턴
    asin(x) x의 아크 사인값 라디안으로 리턴
    atan(x) x의 아크 탄젠트 값을 라디안으로 리턴
    atan2(x,y) (x,y)에 해당하는 극좌표의 각도를 리턴
    ceil(x) x보다 크거나 작은 최소 정수값 리턴
    cos(x) x의 코사인 값 리턴
    exp(x) eX를 리턴
    floor(x) x보다 작거나 같은 최대 정수값 리턴
    log(x) x의 자연대수 리턴
    max(x,y) x, y 중 큰 값 리턴
    min(x,y) x, y 중 작은 값 리턴
    pow(x,y) xy를 리턴
    random() 0과 1사이의 임의의 숫자 리턴
    round(x) x의 가장 가까운 정수로 반올림되는 값 리턴
    sin(x) x의 사인값 리턴
    sqrt(x) x의 제곱근 리턴
    tan(x) x의 탄젠트 값 리턴


    Number 객체

    • Number 객체 유형을 사용하면 숫자를 객체로 다룰 수 있다.
    • Number 객체의 프로퍼티
      • MAX_VALUE : 숫자는 가능한 최대 수치값
      • MIN_VALUE : 숫자는 가능한 최소 수치값
      • NaN : 숫자가 아니다
      • NEGATIVE_INFINITY : 숫자가 음수 무한대 값
      • POSITIVE_INFINITY : 숫자가 양수 무한대 값
      • prototype : 모든 객체 유형이 지원
    • Number 객체의 메소드
      • toString(radix) : 밑이 radix인 숫자를 나타내는 스트링 리턴
      • valueOf() : Number 객체의 수치값 리턴


    Object 객체

    • Object 객체는 다른 모든 객체들이 파생되어 나가는 기반 객체로 이것의 프로퍼티와 메소드는 다른 객체 유형들에서 사용 가능
    • Object 객체의 프로퍼티
      • prototype : 모든 객체 유형이 지원
      • constructor : 객체 생성자의 이름 식별
    • Object 객체의 메소드
      • toString() : 객체를 스트링 표현으로 바꾸는 역할
      • valueOf() : 객체와 관련된 경우의 원시값(숫자,스트링,부울값)을 리턴하고, 그렇지 않은 경우에는 객체 자체를 리턴


    String 객체

    • 스트링을 객체로 액세스 가능
    • String 객체의 프로퍼티
      • length : 문자에서 스트링의 길이 알아내는 역할
      • prototype : 모든 객체 유형이 지원
    String 메소드
    메 소 드 설 명
    charAt(index) 메소드가 적용되는 스트링의 지정된 인덱스에 있는 문자로 구성된 스트링을 리턴
    charCodeAt(index) 지정된 인덱스의 문자의 Unicode 인코딩 리턴
    fromCharCode(codes) 문자 코드의 컴마로 구분된 시퀀스에서 스트링 만듬
    indexOf(pattern) 스트링안에 들어있는 pattern 파라미터가 지정한 첫 번째 스트링의 인덱스 리턴, 패턴이 스트링 안에 들어있지 않으면 -1 리턴
    indexOf(pattern,startIndex) startIndex가 지정한 위치에서 검색을 시작하는 것을 제외하면 indexOf(pattern) 메소드와 같다.
    lastIndexOf(pattern) 스트링에 들어 있는 pattern 파라미터가 지정한 마지막 스트링의 인덱스 리턴, 패턴이 스트링 안에 들어있지 않으면 -1 리턴
    lastIndexOf(pattern,startIndex) startIndex가 지정한 위치에서 검색을 시작하는 것을 제외하면 lastIndexOf(pattern)과 같다.
    splitSeparator() 하나의 스트링을 분리자를 기반으로 하여 서브스트링의 배열로 분리
    substring(startIndex) startIndex에서 시작하는 스트링의 서브스트링을 리턴
    substring(startIndex,endIndex) startIndex에서 시작하고, endIndex에서 끝나는 스트링의 서브스트링을 리턴
    toLowerCase() 소문자로 변환된 스트링의 복사본 리턴
    toString() 객체의 스트링 값을 리턴
    toUpperCase() 대문자로 변환된 스트링의 복사본 리턴
    valueOf() 객체의 스트링 값을 리턴
  • 2006/09/28 16:12 2006/09/28 16:12
    이 글에는 트랙백을 보낼 수 없습니다
    웅쓰:웅자의 상상플러스
    웅자의 상상플러스
    전체 (379)
    게임 (5)
    영화 (2)
    기타 (23)
    맛집 (5)
    영어 (2)
    대수학 (3)
    형태소 (5)
    Hacking (9)
    Linux (112)
    HTML (48)
    Application_developing (48)
    Web_developing (102)
    Window (11)
    «   2024/11   »
              1 2
    3 4 5 6 7 8 9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    1. 2016/01 (1)
    2. 2015/12 (3)
    3. 2015/10 (3)
    4. 2015/03 (2)
    5. 2015/01 (4)