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

[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 (한국어)

 


 


분류 제목
table HTML - <caption> 태그 - 테이블제목 (= 표제목 = caption태그 = 캡션태그) (HTML…
intro HTML - 준비물 + 추천링크 (※ 사용중지・사용폐기 태그) 2
basic HTML - <p> 태그 ★ - 글단락 (= 글문단 = p태그/p요소 = 피태그/피요소)
meta HTML - <meta> 태그 ★★ - 메타정보 (= meta태그 = 메타태그) (HTML5수정) + 모바일…
formatting HTML - <pre>, <xmp> 태그 ★ - 공백줄바꿈보존 (= 보존태그 = 있는그대로태그 = 있는대로태…
form HTML - <option> 태그 ★ - 선택사항 (= 옵션사항 = option태그 = 옵션태그)
style HTML - <span> 태그 ★★★ - 인라인요소그룹 (= span태그 = 스팬태그 = 스판태그)</spa…
font HTML - <sup> 태그 ★ - 위첨자 (= 상단작은글씨 = 상단태그 = sup태그 = 섭태그 = 서프태…
programming HTML - <script> 태그 ★★ - JS코드입력 (= 동적기능언어입력 = script태그 = 스크립트…
font HTML - <h1> ~ <h6> 태그 ★ - 문단제목글씨크기 (= 표제태그 = 단락제목글자크기 = h1태그…
style HTML - <div> 태그 ★★★★★ - 영역 지정 (= 섹션 분할 = div태그 = 디브태그 = 디비전태…
intro HTML - IE조건부주석 ★ (= 익스주석태그 = 익스플로러 조건문)
font HTML - <small> 태그 - 작은글씨 (= small태그 = 스몰태그)
font HTML - <font> 태그 - 폰트(크기/색깔/스타일) (= font태그 = 폰트태그, HTML5제외)
table HTML - <colgroup> 태그 - 테이블의 col태그묶음 (= colgroup태그 = 콜그룹태그, H…
font HTML - <em> 태그 - 의미 강조어 텍스트 기울게 표시 (= em태그 = 엠태그/이멤태그/엠퍼시스태그…
basic HTML - &nbsp; 기호 - 줄바꿈 않는 공백/빈칸 표시 특수문자 (= 공백기호/빈칸기호 = Non-B… 1
form HTML - <legend> 태그 - fieldset제목/설명 (= legend태그 = 레전드태그) (HTM…
formatting HTML - <code> 태그 - 컴퓨터소스코드 출력 (= code태그 = 코드태그)
basic HTML - <br> 태그 ★ - 줄바꿈 (=br태그/br요소 = 비알태그/비알요소) ※ 한줄아래로 줄바꿈 …
16/18
목록
찾아주셔서 감사합니다. Since 2012