<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	.area {
		background:lightgray;
		border:1px solid black;
		width:300px;
		height:100px;
		font-size:40px;
		color:red;
	}
	.area-big {
		background:lightgray;
		border:1px solid black;
		height:300px;
	}
</style>
</head>
<body>
	<h1>window 객체</h1>
	<p>window 객체는 자바스크립트의 최상위 객체이며
	BOM과 DOM으로 나뉜다.</p>
	<p>BOM(Browser Object Model) : location 객체, navigator 객체,
	history 객체, screen 객체</p>
	<p>DOM(Document Object Model) : document 객체</p>
	
	<h3>window 객체</h3>
	<p>브라우저 창에 대한 설정을 하는 객체<br>
	window 키워드는 전에 말했듯이 생략이 가능하다.</p>
	<button onclick="test1();">네이버</button>
	<button onclick="test2();">다음</button>
	
	<script type="text/javascript">
		function test1() {
			// window.open(); 새 탭 띄어주기
			
			// window.open('팝업 주소', '팝업 이름', '팝업 설정');
			
			window.open("http://www.naver.com", "네이버", "location=0, resizeable=no, menubar=no, status=no, toolbar=no");
			// 크롬 브라우져에선 대부분 지원하지 않음, 열기 기능만 됨, ie는 거의 지원
			// w3schools 에서 확인해볼것
		}
		function test2() {
			window.open("http://www.daum.net", "", "width=500, height=300");
		}
	</script>
	
	<br>
	
	<h3>window객체의 timer 메소드</h3>
	
	<h4>setTimeout()</h4>
	<button onclick="test3();">실행확인</button>
	
	<script type="text/javascript">
		function test3() {
			var myWindow = window.open();
			
			myWindow.alert("3초 뒤에 이 페이지는 종료됩니다.");
			
			window.setTimeout(function() {
				myWindow.close();
			}, 3000);
			
			// 3000 밀리 초 후에 지정한 함수가 작동함
		}
	</script>
	
	<br>
	
	<h4>setInterval() : 지정한 시간마다 반복될 함수, ex) 시계</h4>
	
	<button onclick="test4();">실행확인</button>
	<div id="area1" class="area"></div>
	
	<script type="text/javascript">
		function test4() {
			var area1 = document.getElementById("area1");
			window.setInterval(function() {
				var date = new Date();
				
				area1.innerHTML = date.getHours() + " : " + date.getMinutes() + " : " + date.getSeconds();
			}, 1000);
		}
	</script>
	
	<br>
	<h4>clearInterval() : setInterval()을 종료함</h4>
	<button onclick="test5();">실행확인</button>
	<div id="area2" class="area"></div>
	
	<script type="text/javascript">
		function test5() {
			var area2 = document.getElementById("area2");
			
			var count = 10;
			
			var intervalId = window.setInterval(function() {
				area2.innerHTML = "countDown : " + count--;
				
				setTimeout(function() {
					clearInterval(intervalId);
					area2.innerHTML = "종료!";
				}, 10000);
			}, 1000);
			
		}
	</script>
	
	<hr>
	
	<h3>screen 객체</h3>
	<p>웹 브라우저 화면이 아닌 운영체제 화면의 속성을 가지는 객체이다.</p>
	<button onclick="test6();">실행확인</button>
	
	<script type="text/javascript">
		function test6() {
			var width = screen.width;
			var height = screen.height;
			
			child = window.open("", "", "width=800, height=500");
			
			// 윈도우 절대 크기 조절
			child.resizeTo(width, height);
			
			setInterval(function() {
				// 윈도우 상대 크기 조절
				child.resizeBy(-20, -20);
				// 윈도우 상대 위치 조절
				child.moveBy(10, 10);
			}, 10);
			
			console.log("화면 너비 : " + width);
			console.log("화면 높이 : " + height);
			console.log("실제 화면에서 사용 가능한 너비 : " + screen.availWidth);
			console.log("실제 화면에서 사용 가능한 높이 : " + screen.availHeight);
			console.log("사용 가능한 색상 수 : " + screen.colorDepth);
			console.log("한 픽셀당 비트 수 : " + screen.pixelDepth);
		}
	</script>
	
	<hr>
	
	<h3>location 객체</h3>
	<p>브라우저 주소 표시줄과 관련된 객체이다.<br>
	현재 창의 주소같은 여러가지 정보를 담고 있으며 속성을 변경하면<br>
	어떤 링크를 눌렀을 때 새로운 창으로 여는것이<br>
	아닌 현재 창에서 여는것이 가능하다</p>
	<button onclick="test7();">실행확인</button>
	<div id="area3" class="area-big"></div>
	
	<script type="text/javascript">
		function test7() {
			var area3 = document.getElementById("area3");
			
			for (var key in location) {
				area3.innerHTML += key + " : " + location[key] + "<br>";
			}
		}
	</script>
	
	<button onclick="location.href='http://www.naver.com'">네이버로 이동</button>
	<button onclick="location='http://www.naver.com'">네이버로 이동</button>
	<!-- href는 정말 많이 쓰는 기능으로 생략을 허용한다. -->
	
	<br><br>
	<!-- 자기 자신을 붙이면 새로고침이 된다, 완전 새로 로드하기 때문에 기존의 스크롤 위치나 정보는 날아간다. -->
	<button onclick="location.href=location.href">새로고침</button>
	<button onclick="location=location">새로고침</button>
	
	<!-- reload는 스크롤 위치를 그대로 유지하고 새로고침이 된다. -->
	<button onclick="location.reload()">새로고침</button>
	
	<br><br>
	
	<button onclick="location.assign('http://google.com')">구글로 이동</button>
	
	<!-- replace는 뒤로가기를 할 수 없다. -->
	<button onclick="location.replace('http://google.com')">구글로 이동</button>
	
	<!-- 자주 쓰이므로 중요한 기능들이다. -->
	
	<hr>
	
	<h3>navigator 객체</h3>
	<p>웹 페이지를 실행하고 있는 브라우저에 대한 정보를 가진 객체</p>
	<button onclick="test8();">실행확인</button>
	<div id="area8" class="area-big"></div>
	
	<script type="text/javascript">
		function test8() {
			var str = "";
			
			for (var key in navigator) {
				str += key + " : " + navigator[key] + "\n";
			}
			
			alert(str);
			
			var area8 = document.getElementById("area8");
			
			area8.innerHTML += "브라우저의 코드명 : " + navigator.appCodeName + "<br>";
			area8.innerHTML += "브라우저의 이름 : " + navigator.appName + "<br>";
			area8.innerHTML += "브라우저 전체 정보 : " + navigator.userAgent + "<br>";
			area8.innerHTML += "브라우저 언어 : " + navigator.language + "<br>";
			area8.innerHTML += "사용중인 운영체제 : " + navigator.platform + "<br>";
		}
	</script>
	
	
</body>
</html>


+ Recent posts