< Window 객체 >
- 자바스크립트의 최상위 객체
- BOM / DOM
* BOM (Browser Object Model)
: 브라우저 창과 관련된 객체들
* DOM (Document Object Model)
: HTML문서의 요소(태그)와 관련된 객체들
< window 객체 메소드 >
> window.alert() : 확인 버튼이 있는 알림창 띄우기
> window.console.log() : 콘솔창에 출력하기
> window.confirm() : 확인/취소 버튼이 있는 알림창 띄우기
> window.prompt() : 입력창이 있는 알림창 띄우기
> window.open('url', '띄울 창의 이름', '창의 특성') : 새 창 열기
url : 새 창에서 열고자 하는 주소
창 이름 : 이름이 동일한 창이 열려있을 경우 새롭게 열리지 않고 이미 열려있는 창이 새로고침 됨
*창 특성 : 새로 열리는 창의 너비, 높이, 툴바, 스크롤바, 상태표시줄 등
* 특성에 제시할 수 있는 항목들
width : 창의 가로길이 (px)
height : 창의 세로길이 (px)
menubar : 메뉴바 표시 여부
scrollbar : 스크롤바 표시 여부
status : 상태표시줄 표시 여부
toolbar : 도구모음 표시 여부
=> 여러 속성을 한 번에 제시할 때 쉼표(,)로 나열
ex) '속성=속성값, 속성=속성값, ...'
=> 브라우저에 따라 적용되지 않는 속성들도 있음
> window.setTimeout(함수, 밀리초*) : 제시한 일정 시간 후에 함수를 한 번 실행함
* 1000밀리초 == 1초
var newWindow = window.open(); // 새로 열린창의 window객체
newWindow.alert('3초 후에 이 페이지는 닫힙니다.')
window.setTimeout(function(){
newWindow.close();
}, 3000);
> window.setInterval(함수, 밀리초*) : 제시한 시간 간격마다 함수를 실행함
// setInterval()로 시계만들기
window.setInterval(function(){
var now = new Date();
hour = now.getHours();
min = now.getMinutes();
sec = now.getSeconds();
var ap = '';
// 13 -> 1 14 -> 2 15 -> 3 16 -> 4 17 -> 5
if(hour > 12){
hour -= 12;
ap = '오후';
}
else{
ap = '오전';
}
if(sec < 10){
sec = '0' + sec;
}
if(min < 10){
min = '0' + min;
}
area1.innerHTML = ap + ' ' + hour + ':' + min + ':' + sec;
}, 1000);
< BOM (Browser Object Model) >
- 브라우저 창과 관련된 객체들
1. location 객체 : 브라우저의 주소창과 관련된 객체 => url(href 속성)
<a href="http://www.naver.com">네이버로 이동</a>
<!-- a태그는 애초에 클릭 시 요청할 url을 작성할 수 있는 href속성을 제공함 -->
<br>
<button onclick="location.href='http://www.naver.com'">네이버로 이동</button>
<!-- 굳이 a태그가 아니더라도 url이동을 할 수 있음 -->
<br>
> assign('url') : 해당 url로 이동
> replace('url') : 해당 url로 이동, 뒤로가기 불가능
> reload() : 새로고침
<button onclick="location.assign('http://www.google.com')">구글로 이동</button>
<button onclick="location.replace('http://www.google.com')">구글로 이동</button>
<!-- reload : 새로고침 -->
<button onclick="location.reload();">새로고침</button>
<button onclick="location.href = location.href">새로고침</button>
2. screen 객체 : 사용자가 보는 화면에 관한 정보
3. navigator 객체 : 브라우저에 관한 정보
< DOM (Document Object Model) >
- HTML문서의 요소(태그)와 관련된 객체들
- 노드(Node) : HTML에 있는 각각의 요소들을 의미
요소 노드 (Element Node) : 태그 자체만을 의미) = element
텍스트 노드 (Text Node) : 태그 내에 기록되는 내용 = content
텍스트노트가 존재하지 않는 요소(시작태그로만 이루어져있는 요소) : input, img, ...
텍스트노드가 존재하는 요소(시작태그, 종료태그의 쌍으로 이루어져있는 요소) : div, button, a, ...
> 텍스트 노드가 존재하는 노드 생성 (시작태그 + 종료태그)
1) 문자열로 만드는 방법
document.getElementById('area3').innerHTML = '<h3>안녕하세요</h3>';
2) document에서 제공하는 메소드를 통해 요소객체로 만드는 방법
elementNode 객체 생성 → textNode 객체 생성 → 두 노드를 연결(elementNode의 하위로 textNode를 추가)
// elementNode 생성
var elementNode = document.createElement('h3');
// textNode 생성
var textNode = document.createTextNode('안녕하세요');
// 두 노드를 연결 (elementNode의 하위로 textNode를 추가)
elementNode.appendChild(textNode); // <h3>안녕하세요</h3>
// div태그의 자식으로 elementNode를 추가
document.getElementById('area3').appendChild(elementNode);
> 텍스트노드가 존재하지 않는 노드 생성 (시작태그만 있는 노드 생성)
요소객체 생성 → 속성 추가
var img = document.createElement('img'); // <img>태그 요소객체
// <img src="이미지경로" width="~~" height="~~" alt="~~"> => 객체의 속성들
// 객체의 속성에 접근하는 방법 : 객체명['속성명'] 또는 객체명.속성명
// 속성추가
img.src = '이미지url';
img.width = '400';
img.height = '200';
// div 태그의 자식요소로 추가
document.getElementById('area4').appendChild(img);
> 노드 삭제
지우고자하는 요소객체.remove()
'개발 > Front-end' 카테고리의 다른 글
[JavaScript] 정규표현식 / 메타 문자 / 플래그 문자 (0) | 2022.10.31 |
---|---|
[JavaScript] 이벤트 / 이벤트 모델 종류 / 이벤트 발생 객체 접근 방법 (0) | 2022.10.31 |
[JavaScript] 객체 (0) | 2022.10.31 |
[JavaScript] 함수 - 선언적 함수 / 익명 함수 / 매개변수 (0) | 2022.10.31 |
[JavaScript] 배열 / Array 객체 메소드 (0) | 2022.10.31 |