DOM

DOM (Document Object Model : λ¬Έμ„œ 객체 λͺ¨λΈ) 은 μŠ€ν¬λ¦½νŠΈμ™€ 같은 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μ›Ή νŽ˜μ΄μ§€μ— μ—°κ²°ν•˜λŠ” μ—­ν™œμ„ ν•œλ‹€.

Event

Event μΈν„°νŽ˜μ΄μŠ€λŠ” DOM 내에 μœ„μΉ˜ν•œ 이벀트λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.

stopPropagation() vs preventDefault()

stopPropagation() λŠ” 이벀트 버블링 (μžμ‹μ—μ„œ λΆ€λͺ¨λ‘œ μ „νŒŒ) λ˜λŠ” 것을 λ§‰λŠ” 것이고

preventDefault() λŠ” ν˜„μž¬ 이벀트의 κΈ°λ³Έλ™μž‘μ„ μ€‘λ‹¨ν•˜λŠ”κ²ƒμ΄λ‹€. (a tag 의 href 속성과 같은 λ™μž‘)

μœ μ‚¬ν•œκ²ƒμœΌλ‘œ stopImmediatePropagation() μ΄λ‚˜ return false 와 같은 것듀이 μžˆλ‹€.

onload 이벀트

νŽ˜μ΄μ§€ λ¦¬μ†ŒμŠ€κ°€ λ‘œλ“œλ˜μ—ˆμ„λ•Œ λ°œμƒλ˜λŠ” 이벀트둜 λŒ€ν‘œμ μœΌλ‘œ λ‹€μŒ 3κ°€μ§€λ‘œ λ‚˜λ‰œλ‹€.

document.ready

DOM 이 λ‘œλ“œλ˜κ³  Element 의 접근이 μ•ˆμ •λ  λ•Œ λ°œμƒν•œλ‹€.

IE 9 이상

document.addEventListener('DOMContentLoaded', function () {
    /* statement */
});

IE8 μ΄ν•˜

IE8 μ΄ν•˜μ—μ„œλŠ” μ•„λž˜μ™€ 같이 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

document.onreadystatechange = function () {
    if (document.readyState === 'complete') {
        /* statement */
    }
};
readyState Description
uninitialized 아직 λ‘œλ”©μ΄ μ‹œμž‘λ˜μ§€ μ•ŠμŒ
loading λ‘œλ”©μ€‘
interactive μ–΄λŠμ •λ„ λ‘œλ“œκ°€ λ˜μ—ˆμœΌλ©° μ‚¬μš©μžκ°€ μƒν˜Έμž‘μš© ν•  수 있음
complete λ‘œλ”© μ™„λ£Œ

jQuery Library μ‚¬μš©

$(document).ready(function () {
    /* statement */
});

window.ready

νŽ˜μ΄μ§€λ‚΄μ˜ λͺ¨λ“  λ¦¬μ†ŒμŠ€κ°€ λͺ¨λ‘ λ‘œλ”©λœ 이후 μ‹€ν–‰

window.onload

DOM κ³Ό λͺ¨λ“  Asset (이미지, λ¬Έμ„œ λ“±λ“±...) 듀이 λ‘œλ“œλœ 이후에 λ°œμƒν•œλ‹€.

window.onload λŠ” <body onload=""> 와 같은 κΈ°λŠ₯이닀.

window.onload λŠ” <body onload=""> λ™μ‹œμ— μ‚¬μš©μ‹œ <body onload=""> κ°€ μ‹€ν–‰

window.onload κ°€ λ‘κ°œ 이상 μ‚¬μš©μ‹œ λ§ˆμ§€λ§‰ ν•¨μˆ˜λ§Œ μ‹€ν–‰λœλ‹€.

Javascript μ—μ„œ μ‚¬μš©

window.onload = function () {
    /* statement */
}

Tag μ†μ„±μœΌλ‘œ μ‚¬μš©

<body onload=""></body>

jQuery Library μ‚¬μš©

$(window).load(function () {
    /* statement */
});

λ‘œλ”© μˆœμ„œ

Object onload

object κ°€ λ‘œλ“œ λ˜μ—ˆμ„ λ•Œ λ°œμƒ ν•©λ‹ˆλ‹€.
μ›Ή νŽ˜μ΄μ§€κ°€ λͺ¨λ“  컨텐츠 (이미지, 슀크립트 파일, μŠ€νƒ€μΌμ‹œνŠΈ) 등을 μ™„μ „νžˆ λ‘œλ“œν•œ ν›„ μ‹€ν–‰ ν•©λ‹ˆλ‹€.

Syntax

<tag onload="myScript"></tag>
<tag onload="script"></tag>
object.onload = function () {/* script */};
object.addEventListener('load', script);
Feature Description
이벀트 버블링 NO
쀑단 κ°€λŠ₯ μ—¬λΆ€ NO
이벀트 μœ ν˜• UI μƒμ„±μ‹œ
지원 νƒœκ·Έ <body> <script> <style> <link>
<frame> <iframe> <img> <input type="image">
DOM 버전 Level 2 이벀트