웹브라우저 JavaScript

창 제어

window.open 메소드는 새 창을 생성한다. 현대의 브라우저는 대부분 탭을 지원하기 때문에 window.open은 새 창을 만든다. 아래는 메소드의 사용법이다.

<!DOCTYPE html>
<html>
<style>li {padding:10px; list-style: none}</style>
<body>
<ul>
    <li>
		첫번째 인자는 새 창에 로드할 문서의 URL이다. 인자를 생략하면 이름이 붙지 않은 새 창이 만들어진다.<br />
		<input type="button" onclick="open1()" value="window.open('demo2.html');" />
	</li>
	<li>
		두번째 인자는 새 창의 이름이다. _self는 스크립트가 실행되는 창을 의미한다.<br />
		<input type="button" onclick="open2()" value="window.open('demo2.html', '_self');" />
	</li>
	<li>
		_blank는 새 창을 의미한다. <br />
		<input type="button" onclick="open3()" value="window.open('demo2.html', '_blank');" />
	</li>
	<li>
		창에 이름을 붙일 수 있다. open을 재실행 했을 때 동일한 이름의 창이 있다면 그곳으로 문서가 로드된다.<br />
		<input type="button" onclick="open4()" value="window.open('demo2.html', 'ot');" />
	</li>
	<li>
		세번재 인자는 새 창의 모양과 관련된 속성이 온다.<br />
		<input type="button" onclick="open5()" value="window.open('demo2.html', '_blank', 'width=200, height=200, resizable=yes');" />
	</li>
</ul>

<script>
function open1(){
	window.open('demo2.html');
}
function open2(){
	window.open('demo2.html', '_self');
}
function open3(){
	window.open('demo2.html', '_blank');
}
function open4(){
	window.open('demo2.html', 'ot');
}
function open5(){
	window.open('demo2.html', '_blank', 'width=200, height=200, resizable=no');
}
</script>
</body>
</html>

새 창에 접근

아래 예제는 보안상의 이유로 실제 서버에서만 동작하고, 같은 도메인의 창에 대해서만 작동한다.

<!DOCTYPE html>
<html>
<body>
    <input type="button" value="open" onclick="winopen();" />
	<input type="text" onkeypress="winmessage(this.value)" />
	<input type="button" value="close" onclick="winclose()" />
	<script>
	function winopen(){
		win = window.open('demo2.html', 'ot', 'width=300px, height=500px');
	}
	function winmessage(msg){
		win.document.getElementById('message').innerText=msg;
	}
	function winclose(){
		win.close();
	}
	</script>
</body>
</html>

팝업 차단

사용자의 인터렉션이 없이 창을 열려고 하면 팝업이 차단된다. 

<!DOCTYPE html>
<html>
<body>
    <script>
    window.open('demo2.html');
    </script>
</body>
</html>

 

댓글

댓글 본문
버전 관리
egoing
현재 버전
선택 버전
graphittie 자세히 보기