반응형

Window 객체의 프로퍼티

[광고 누르면 오늘의 행운 상승!!]

  • Explorer9 이전 : 인터넷 익스플로어 고유의 문서 객체모델 이용
  • Explorer9 이전 : 다른 웹 브라우저에서 사용되는 객체 프로퍼티와 동일한 방법 사용

웹 브라우저 창의 크기(브라우저 창의 UI 요소 포함)

var windowdWidth = window.outerWidth;
var windowdHeight = window.outerHeight;

 

웹 브라우저 창의 크기(브라우저 창의 UI 요소 제외)

var webViewWidth = window.innerWidth;
var webViewHeight = window.innerHeight;

 

창의위치 정보_ 모니터 좌측 상단부터 브라우저 창까지의 거리 반환

var windowPosX = window.screenX;
var windowPosY = window.screenY;

 

웹 브라우저 창 내부에서 스크롤 등의 조작을 통해 얼마나 이동했는지 파악

var scrollX = window.pageXoffest;
var scrollY = window.pageYoffest;

// 웹 문서 내부에서 특정 이미지 부분을 확대해 관찰할 수 있는 기능 구현할 때 중요

주의점

※ 위의 프로퍼티들은 읽기전용으로 브라우저 창의 크기 또는 위치 변경은 좋지 않기 때문에
    창의 크기와 위치를 변경하지 않는 방식으로 코드를 수정해야 한다.※

팝업 윈도우 생성

  • 부정적인 인식이 강함 → 사용자가 보고 있는 또는 보고자 하는 창을 가림 → 광고로 가득찬 팝업 윈도우 수십개가 동시 다발적으로 뜸

  • 팝업 윈도우를 차단하는 기능은 웹 브라우저의 기본 기능이 됨

  • 웹 문서 로딩과 함께 뜨는 팝업 윈도우는 기능을 상실함

윈도우를 생성하는 방법

  • window 객체의 open 메소드 사용
var newWindow = window.open("login/index.html" , "Login", "width = 500, height = 350,
menubar = yes, location = yes, resizable = yes, scrollbars = yes, status = yes");

login/index.html : 새로 생성된 창에서 열 HTML 페이지
Login : 새로 생성된 창의 이름
3번째 인자 : 창의 속성

 

윈도우의 생성

window.addEventListener("load", init, false);
//윈도우가 로딩이 완료되었으면 init 함수를 호출해라.
//웹 문서에 로딩이나 클릭과 같은 이벤트가 발생했을 때 처리하는 코드

function init(){
	var p = document.getElementsByTagName("p");
	// 요소명이 p인 요소를 모두 선택하여 변수 p에 할당하라는 의미

	p[0].addEventListener('click', poenSub, false);
	p[1].addEventListener('click', poenSub2, false);
	// HTML 문서 내부에 p요소가 2개 -> 변수 p는 배열로 선택된 요소를 받음
	// 첫 번째 p 요소를 클릭하면 openSub함수 호출
	// 두 번째 p 요소를 클릭하면 openSub2함수 호출
	function openSub(){
		var w = window.open("sub.html", "sub", "width = 500, height = 350, 
		menubar = yes, location = yes, resizable = yes, scrollbars = yes, status = yes");
		//openSub 함수 내부에 window 객체의 open 메소드가 있음
		//새 창에서 열릴 HTML 문서의 URL, 생성할 창의 이름, 창의 속성
		//생성된 창 객체는 변수w에 할당
	}
	
	function openSub2(){
		var w = window.open("sub2.html", "sub2", "width = 400, height = 350, 
		menubar = yes, location = yes, resizable = yes, scrollbars = yes, status = yes");
		//넓이와 창의 이름을 제외하면 위 코드와 동일
	}
}

 

윈도우의 수정

window.addEventListener("load", init, false);

function init(){
	var p = document.getElementsByTagName("p");

	p[0].addEventListener('click', poenSub, false);
	p[1].addEventListener('click', poenSub2, false);

	function openSub(){
		var w = window.open("sub.html", "sub", "width = 500, height = 350, 
		menubar = yes, location = yes, resizable = yes, scrollbars = yes, status = yes");
		//openSub 함수 내부에 window 객체의 open 메소드가 있음
		//새 창에서 열릴 HTML 문서의 URL, 생성할 창의 이름, 창의 속성
		//생성된 창 객체는 변수w에 할당
	}
	
	function openSub2(){
		var w = window.open("sub2.html", "sub", "width = 400, height = 350, 
		menubar = yes, location = yes, resizable = yes, scrollbars = yes, status = yes");
		//새로 생성하는 창의 이름을 기존 창의 이름과 같은 것으로 설정한 것
		//open sub.html 과 open sub2.html 텍스트를 차례로 클릭한 결과
		//-> 새로운 창이 생성되는 것이 아니라 openSub 함수에서 생성한 창에 sub2.html이 로딩됨
	}
}

 

window 객체의 close 메소드

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
	</head>
	<body>
			<h1>sub.html</h1>
			<p>close window</p>
			<script>
					var closeP = document.getElementsByTagName('p');
					closeP[0].addEventListener('click', closeWindow, false);

					function closeWindow(){
								window.close(); //현재 창을 닫는 역할
					}
			</script>
	</body>
</html>

alert

  • 경고 상자 생성
  • 실제 개발에는 거의 사용하지 않으나 디버깅 용으로 사용

→ window.alert("Hello World"); OR alert("Hello World");

window 객체 → 전역객체

  • JavaScript 내부에서 생성된 전역 변수 → window 객체의 프로퍼티
    ※ 전역 객체를 다음과 같이 설정하면 어디에서도 전역 변수를 선언할 수 있음
window.myVar = "global variable";
반응형

+ Recent posts