본문 바로가기
[ javascript ]

[Window 객체] 브라우저 창을 움직이는 객체 : 페이지 이동, 카운트다운 출력하기

by 히앤님 2020. 8. 12.
반응형
SMALL

Window 객체


자바스크립트에서 웹화면(브라우저) 전체를 담당하는 전역 객체.

브라우저 전체를 담당하는 Window 객체 안에는 여러 내장 객체들이 속해있다.

<Window 객체 안의 내장 객체>

Frame 객체 : 2개 이상의 문서가 조합되어 만들어지고 배열로 이루어져 있는 객체. 프레임을 제어한다. length를 이용해서 프레임의 갯수를 알 수 있고, 각 프레임의 정보에 접근 가능.

Location 객체 : 현재 열려진 웹 화면의 URL 주소와 관련된 정보 제공.

History 객체 : 웹 브라우저의 히스토리(방문한 적이 있는 URL 주소)를 관리.

Document 객체 : 문서의 정보(제목, 변경날짜, 시간 등)를 관리. 원하는 내용을 출력하거나 문서의 정보를 제공해준다.

ex)document.getElementById : 주어진 문자열과 일치하는 id 속성을 가진 요소를 찾고, 이를 나타내는 Element 객체를 반환. ID는 문서 내에서 유일해야 하기 때문에 특정 요소를 빠르게 찾을 때 유용

ex) Document.querySelector() : ID가 없는 요소에 접근. 모든 선택자를 사용가능

Document 객체는 방대하기 때문에 메소드를 그때그때 찾아 봐야 한다.

 

객체 생성 없음

 

<메소드 호출>

window.메소드(~)

 

<속성변수 호출>

window.속성변수

window는 웹브라우저가 제공하는 Window의 객체참조변수이다.

window 객체 메소드
open(url, 창이름, 창옵션) 새로운 웹화면 생성하고 그 화면을 관리하는 window 객체 생성
close() 웹화면 닫음
alert(메시지) 확인버튼이 있는 대화상자를 보여줌
confirm(메시지) 확인, 취소버튼이 있는 대화상자를 보여줌
prompt(메시지) 입력상자가 있는 대화상자를 보여줌
setTimeout("java script 코드", n초 * 1000) n초 뒤에 "java script 코드" 실행.
setTimeout(function(~){java script 코드}, n초 * 1000)도 가능
clearTimeout() setTimeout 메소드를 정지
setInterval("java script 코드", n초 * 1000) n초 마다 "java script 코드" 실행.
setInterval(function(~){java script 코드}, n초 * 1000)도 가능
clearInterval() setInterval 메소드를 정지
find( 찾을문자 ) 원하는 문자열 찾기
moveBy( x , y ) 웹화면을 지정한 상대적 위치로 이동
moveTo( x , y ) 웹화면을 지정한 절대적 위치로 이동
resizeBy( x , y ) 웹화면을 지정한 상대적 크기로 이동
resizeTo( x , y ) 웹화면을 지정한 절대크기로 이동
scrollBy( x , y ) 웹화면의 스크롤 위치를 지정한 상대적 위치로 이동
scrollTo( x , y ) 웹화면의 스크롤 위치를 지정한 절대적 위치로 이동
focus() 초점 맞춤. 텍스트창의 경우, 커서를 위치시켜서 바로 입력 가능하게 만듬. 버튼의 경우, 엔터키를 눌렀을 때 클릭효과.
blur() focus()의 반대로 초점 제거. fucus() 제거 또는 창 최소화
addEventListener( "load", 호출함수명, false ) body 태그 안의 내용물을 다 읽어들인 후 특정 이벤트가 발생했을 시 특정 함수를 실행. load 대신에 다른 이벤트명을 지정할 수 있다. 
기타 등등....
window 객체 속성변수
opener open() 메소드 사용해서 열린 웹화면의 window 객체 저장
innerHeight 실제 문서가 출력될 부분의 높이 저장
innerWidth 실제 문서가 출력될 부분의 넓이 저장
outerHeight 화면 전체의 높이 저장
outerWidth 화면 전체의 넓이 저장
locationbar 창에 제목표시줄 표시 여부
personalbar 창에 personal도구모음 표시 여부
scrollbar 창에 스크롤바 표시 여부
statusbar 창에 상태표시줄 표시 여부
toolbar 창에 툴바(도구창) 표시 여부
status 상태표시줄 문자 변경
defaultStatus status를 설정하지 않았을 때 기본적으로 표시할 내용
 특정 이벤트가 발생했을 시 특정 함수를 실행 body 태그 안의 내용물을 다 읽어들인 후 실행할 함수명을 지정.
기타 등등....

 

<예제1-1> 5초 뒤에 Tistory 페이지로 이동하기

 <html>
 <head>
	<script>
    function move_5_sec(){
		window.setTimeout(
			"location.replace('http://www.naver.com');" , 5*1000
		);
	}
	</script>
</head>

<body onLoad = "move_5_sec();"> // body 태그 안의 내용을 모두 읽어 실행한 후 move_5_sec 함수호출
5초 뒤 페이지 이동합니다.<center>
</body>
</html>

- Window 객체의 setTimeout(~,~) 메소드로 지정한 시간 뒤에 페이지를 이동한다.

- Location 객체의 replace 메소드 호출 형식) window.location.replace("이동할 URL 주소")

이동할 URL 주소로 현재 페이지가 바뀐다. 위 replace 메소드 대신에 아래처럼 href 속성변수에  "이동할 URL 주소" 설정해도 현재 페이지가 바뀐다. Location 객체의 메위주는 location 변수에 저장되어 제공한다. -> location.herf = "이동할 URL 주소" 

 

<예제1-2> 5초 뒤에 Tistory 페이지로 이동하기. 단, 화면에 5,4,3,2,1로 카운트다운 세기.

 <html>
 <head>
	<script>
    //변수 num 선언
    var num = 5;
    //countdown 함수 선언
    function countdown(){
    	//document 객체의 document.getElementById 메소드 사용 : id 있는 곳에 시간문자 삽입
		document.getElementById("second").innerHTML = 5; 
        
        //window 객체의 setInterval 메소드 : n초마다 실행
		window.setInterval( 
       		//실행할 코드
       		function(){			
			document.getElementById("second").innerHTML = --num;			
			if(num==1){location.replace("https://heannim-world.tistory.com/");}			
			}
        	//n초마다 실행
     	   , 1*1000);
	}
	</script>
</head>

 <body onLoad = "countdown();"><center>
 	//문자열 삽입
	 <span id = "second"></span>
</body>
</html>

- document 객체의 document.getElementById 메소드 : id = "nowTime" 가 있는 태그 영역 내부에 시간 문자열 삽입

-> 시간 문자열이 "second"

- setInterval("java script 코드", n초 * 1000) : n초마다 "java script 코드"실행

-> 실행할 때마다 1씩 줄어들고, 만약 num이 1이라면 그 다음 페이지를 이동시킨다.

반응형
LIST

댓글