컴퓨터보안/웹클라이언트

3. onload() + 이벤트와 DOM (자바 스크립트)

데이빗제이2 2024. 5. 10. 09:22

[JAVASCRIPT] onload() : 

웹 페이지가 로딩되었을 때 로딩된 이벤트에 맞춰 원하는 함수, 코드를 호출할 수 있도록 한다.

한번에 실행될 onload 메서드가 1개보다 많을 시 마지막 onload 메서드만 실행된다.

 

*window.onload
전역 콜백 함수로 자바스크립트에 사용 시, 페이지 로딩 후 자동으로 실행이 된다. 

 

- window 객체 뿐 아니라 원하는 객체가 로드되었을 때 실행될 코드를 설정할 수 있음 document.getElementById(“myFrame”).onload = function(){ //실행될 코드 }

 

아니면이벤트를 직접 연결할 수도 있음.

window.addEventListener(‘load’, function(){ //실행될 코드 });

 

 

1. 창에서 onload

window.onload = function() {
  alert("윈도우 창이 켜졌을 때 바로 실행됨");
}

 

2.태그에서 onload


<body onload = alarm()>
    <script> 
        function alarm() {
            alert("body 태그에서 onload 지정 가능");
        }
    </script>
</body>

3. 특정객체에서 onload
<body>    
    <input type="button" id="btn1" value="click the button" onclick=count_alarm()>
    <div id="count">0</div>
    <script>    
        window.onload(alert("페이지가 로딩되었습니다."));

        function count_alarm() {                  
            const count = document.getElementById("count");            
            let number = count.innerText;
            number ++;
            count.innerText = number;
            const alarm = document.getElementById("btn1").onload(alert("숫자가 1 증가합니다."));
        }

    </script>
</body>

 

 

01: 이벤트(Event)

1) HTML 이벤트

이벤트명 설명
click 클릭시 발생
change 변동이 있을시 발생
focus 포커스를 얻었을때 발생
keydown 키를 눌렀을때 발생
keyup 키에서 손을 땟을때 발생
load 문서의 로드가 완료 되었을때 발생
unload 문서가 언로드 되었을때 발생
resize 윈도우 크기가 변경될 경우 발생
mouseover 마우스가 특정 객체 위로 올려졌을 시에 발생
mousedown 마우스를 클릭 했을때 발생
mouseout 마우스가 특정 객체 밖으로 나갔을 때 발생
mousemove 마우스가 움직였을 때 발생
mouseup 마우스에서 손을 땟을때 발생
select option 태그 등에서 선택을 했을때 발생
submit 입력양식이 제출 요청 될때 발생

 

 

2) 이벤트 핸들러

 

HTML 속성으로 정의

<input type="button" value="Button" onclick="alert('버튼 클릭됨!!')"></input>

 

자바스크립트 에서 정의

<script>
  document.getElementById('b1').onclick = function() {alert("버튼 클릭됨!!")}
</script>

<body>
  <input type="button" id="b1">
</body>

 

02: DOM(Document Object Model)

1) DOM (Document Object Model)  개요

문서객체모델이라고 하며 HTML 혹은 XML문서의 구조화된 표현을 제공하는 표준입니다. HTML에서는 자바스크립트가 DOM 구조에 접근할 수 있는 방법이 제공되며 이를 통해 문서 구조, 스타일, 내용등을 변경 할 수 있습니다.

자바스크립트는 DOM을 이용하여 HTML의 태그, 속성, 스타일 등을 추가/삭제 하거나 변경할 수 있습니다.

 

DOM 예시

 

Document Node
document 객체를 말하며 DOM 트리에 접근하기 위한 최상위 노드로 모든 DOM 트리에 접근하기 위한 시작점이 됩니다.

Element Node
HTML 구성 요소 즉 대표적으로 대그를 의미합니다. 문서내 태그들은 모두 Element Node 들 입니다. 각각의 Element Node 는 다시 Attribute와 Text Node를 가집니다.

Attribute Node
태그들의 속성을 객체화한 노드를 말합니다. 만일 특정 태그의 속성에 접근하려면 Attribute Node를 사용해야 합니다.

Text Node
태그의 텍스트를 객체화한 노드입니다. 자식 노드를 가질 수 없으며 DOM 트리구조의 최종단 노드가 됩니다.

 

HTML 요소선택
getElement(s)ByXXX() 를 이용해 특정 요소(태그) 노드를 가지고 옵니다.


2) HTML 요소 핸들링
자바스크립트에서 HTML DOM 요소에 접근하는 방법은 태그이름, 아이디, 클래스, 이름 등을 이용해 특정 노드 객체를 선택하는 것입니다. CSS 의 셀렉터와 유사 하다고 볼 수 있습니다.

 

HTML 요소선택
document.getElementsByTagName("tag_name")
document.getElementById("id_name")
document.getElementsByClassName("class_name")
document.getElementsByName("name_attribute")

 

쿼리 셀렉터

document.querySelector("#main, #title, #footer");
document.querySelectorAll("p.note, p.tip")

 

HTML 요소 생성, 제거, 추가

document.createElement(element)        
document.removeChild(element)          
document.appendChild(element)          
document.replaceChild(element)       

 

3) HTML 요소의 속성 행들링

 

HTML 요소의 속성값 변경
element.setAttribute(attribute, value)
element.getAttribute(attribute, value)
element.removeAttribute(attribute)

HTML 이벤트핸들러 추가
document.getElementById("id_name").onclick = function(){ code };

텍스트 노드 변경
element.innerHTML = '<tag>text</tag>';
element.innerText = 'text';

03: 디자인 요소 변경

1) 디자인 요소 변경

style 속성변경
document.getElementById('box1').setAttribute('style','background-color:yellow');

style 객체 변경
document.getElementById('box1').style.backgroundColor = 'yellow';

클래스 지정
document.getElementById('box1').className = 'bgyellow';

2) 화면 숨기기
document.getElementById('box1').style.display = 'none';
document.getElementById('box1').style.visibility = 'hidden';