• 회원가입
  • 로그인
  • 구글아이디로 로그인

[programming] HTML - <script> 태그 ★★ - JS코드입력 (= 동적기능언어입력 = script태그 = 스크립트태그)

목차
  1. <script> 예제 - JS코드 입력
  2. <script> 정의
  3. <script> 속성
  4. <script> 위치 - HTML 로드 후, JS 실행 권장

 

<script> 예제 - JS코드 입력


<p id="sinbi"></p>

<script>
document.getElementById("sinbi").innerHTML = "홈짱닷컴 (homzzang.com)";
</script>

의미: HTML 문서에서 sinbi 아이디 찾아, 그 안에 홈짱닷컴 (homzzang.com)이라는 글자 넣어 출력.

<script> 정의

 

클라이언트 브라우저에서 HTML 문서를 보다 동적이면서 상호작용하도록 만들어주는 역할 함.

 


 

1.

<script>는 서버쪽이 아닌 클라이언트쪽 브라우저에서 "자바스크립트" 같은 스크립트 정의할 때 사용.

2.

상단 예제처럼 <script>태그 안에 스크립트 내용을 직접 정의할 수도 있고, 
아래 예제처럼 js 확장자로 저장된 JS외부문서를 src 속성 이용해 호출 가능.
<script language="javascript" src="<?php echo G5_JS_URL."/rainbow.js">

3.

<script> 태그는 주로 이미지 조작,  폼 양식 유효성 검사, 콘텐츠의 동적 변화에 사용.

4.

<script> 태그 안에 src 속성이 존재할 경우, 
script 태그 안엔 javascript 외부 문서를 제외하고 아무 것도 없어야 함.


5. 
JS 지원 않는 클라이언트쪽 브라우저 고려해, 
<noscript> 태그 이용해 별도로 내용 기술 가능.

6. 

외부스크립트가 실행되는 방법 3가지 ★★★
1. async="async" : 페이지의 나머지 문서와 동시에 실행.
2. defer="defer" : 페이지 문서가 모두 뜬 후, 마지막에 실행.
3. 비정의 : 페이지 문서가 뜨기 전에 실행

7.
Type 속성 지정 필수 여부

HTML 4.01 : type 지정 필수
HTML5 : type 지정 선택. async 속성 새로 등장, xml:space 속성이 더 이상 지원 안됨.


8.

HTML과 XHTML에서 사용법 차이 (걍 참고용. 몰라도 됨. ㅡㅡ;;;;)

HTML

<script> 태그 안 스크립트 내용을 CDATA로 선언 (※ CDATA는 entities 의미를 분석하지 않음)

XHTML

<script> 태그 안 스크립트 내용을 #PCDATA로 선언 (※ #PCDATA는 entities 의미를 분석)
이것은 모든 특수문자는 암호화되야 하고 또한 모든 콘텐트는 CDATA 섹션으로 감싸져야 함을 의미.

<script type="text/javascript">
//<![CDATA[
var i = 10;
if (i < 5) {
  // some code
}
//]]>
</script>


9. 

JS 자세한 사용법은 JS 게시판 참고. 

 


<script> 속성

속성
속성값 쓰임새 비고
 async
 async  페이지의 나머지 문서와 동시에 출력. (외부 파일 방식)
 즉, JS 파일 다운 명령만 걸어두고, html 로드 진행함.
 
 charset ISO-8859-1
(라틴 알파벳용)

 UTF-8
 문자셋 (외부 파일 방식)  
 defer
 defer  페이지 문서가 모두 뜬 후, 마지막에 출력.
(외부 파일 방식)
 
 src
 URL 주소  js 확장자로 된 JS 내용 담은 외부 문서 
(외부 파일 방식)
 
 type  text/javascript (기본값)
 text/ecmascript
 application/ecmascript
 application/javascript
 스크립트의 미디어 타입을 지정  
xml:space
 preserve  코드에서 여백이 보존되어야 하는지 여부  HTML5 제외

※ 속성과 속성값이 동일하면 속성값을 따로 안 적어도 됨. 

 

<script> 위치 - HTML 로드 후, JS 실행 권장

방법1 - <head> 안에 <script> 태그 넣는 대신, <script> 태그에 async 속성 추가.

 

JS 파일 다운로드 명령만 실행 후, 계속해서 HTML 요소 로드 진행.

(즉, JS 파일 다운로드와 HTML 로드가 병렬적으로 진행됨.)

※ JS 파일 다운 속도와 HTML 로드 속도가 별 차이 없을 때 사용 권장.

 

장점: 방법2・3보다 JS 실행 속도가 더 빠름.

단점: HTML 로드 완료 전 JS 파일 실행 가능성 존재해, DOM 조작 시 에러 발생 가능.

 


방법2 - <head> 안에 <script> 태그 넣는 대신, <script> 태그에 defer 속성 추가. ★

 

JS 파일 다운로드 명령만 실행 후, 계속해서 HTML 요소 로드 진행.

(즉, JS 파일 다운로드와 HTML 로드가 병렬적으로 진행됨.)

※ JS 파일 다운 속도보다 HTML 로드 속도가 많이 느릴 때 사용 권장.

 

장점: 방법2보다 전체 로드 속도가 더 빠름.

단점: HTML 로드 완료 후 JS 파일 실행하므로, DOM 조작 시 에러 발생 없음.

 


방법3 - <script> 태그를 </body> 태그 앞에 위치. (비권장)

 

HTML 요소 로드 완료 후, 비로소 JS 파일 다운로드가 순차적으로 진행됨.

 

장점: HTML 로드 완료 후 JS 실행하므로 에러 가능성 줄어듦.

단점: 로드 시간이 아주 많이 지연됨.

 

PS. 엘리 님 (async・defer) 강의 https://youtu.be/tJieVCgGzhs

 

PS.

 

JS 강의

https://homzzang.com/b/js

 

mdn script 강의

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script (영어)

https://developer.mozilla.org/ko/docs/Web/HTML/Element/script (한국어)

 


 


분류 제목
link HTML - <link> 태그 ★ - 외부소스연결 (= link태그 = 링크태그) (HTML5수정) ※ 파비…
basic HTML - <hr> 태그 - 주제 다른 문단구분선 (= hr태그 = hr요소 = 가로선 = 수평선 = 에이…
form HTML - <select> 태그 ★ - 선택메뉴 (= select태그 = 실렉트태그 = 셀렉트태그) (H…
api HTML5 - Drag and Drop - 마우스로 끌어서 놓기 (= 드래그앤드롭)
font HTML - <i> 태그 - 이탤릭체 (=기울어진 글씨체 = 글씨 기울어지게 = i태그 = 아이태그, 이탤…
etc HTML - <tt> 태그 - 텔레타이프 텍스트 (= tt태그 = 티티태그)
media HTML - <audio> 태그 ★ - 음성파일재생 (= audio태그 = 오디오태그)
font HTML - <b> 태그 ★ - 굵은글씨 (= b태그 = 비태그) ※ 볼드태그 / bold태그 / 글씨 긁…
basic HTML - <!--주석 내용--> 태그 ★ - 주석 처리 ※ 스크립트 태그 안 주석 의미
programming HTML - <embed> 태그 - 외부동영상재생 (= embed태그 = 엠베드태그, HTML5추가)
etc HTML - 키보드 단축키 모음 (Window/Mac)
style HTML - <style> 태그 ★ - 요소에 CSS스타일적용 (= style태그 = 스타일태그)
image HTML - <area> 태그 - 이미지맵에서 특정 링크 영역 (= area태그 = 에어리어태그) (HTML…
style HTML - <details> 태그 - 토글 가능한 세부사항(상세사항)을 표시 (= details태그 = 디…
form HTML - <textarea> 태그 ★ - 여러줄 입력창 (= 텍스트입력영역 = 텍스트영역 = textar…
font HTML - <strong> 태그 ★ - 굵은글씨 (= 글자굵기 = 폰트굵게 = strong태그 = 스트롱태…
image HTML - <map> 태그 - 이미지 특정 부분에 링크 (= map태그 = 이미지맵태그) ※ 이미지에 여러…
image HTML - <img> 태그 ★ - 이미지태그 (= img태그) ※ 이미지 일부 자르기, ※ 링크 허버 시,…
form HTML - <input> 태그 ★★★ - 입력창 + 입력버튼 (= input태그 = 인풋태그) ※ 자동포커…
font HTML - <u> 태그 ★ - 밑줄태그 (= u태그 = 유태그 = 언더라인태그) (HTML5재정의)
17/18
목록
찾아주셔서 감사합니다. Since 2012