자바스크립트로 location.href 를 설정하여 다른 페이지로 이동하는 코드를 짜는 경우가 있는데, 이동 하는 페이지를 새 창(브라우저)으로 띄우고 싶은 경우가 있습니다.
이럴 때는 다음과 같은 방법을 사용합니다.
// 새 브라우저 창을 띄워 DAUM 페이지로 이동
window.open('http://www.daum.net ', '_blank');
첫번째 인자로는 이동할 페이지 URL 주소
두번째 인자로는 새 창을 띄울 윈도우의 이름입니다.
위의 코드를 호출하게 되면 새 브라우저 창의 뜨워 다음 페이지를 열어 줍니다. 계속해서 페이지에서 위의 코드를 호출해도 계속해서 새 창이 뜹니다.
(브라우저 마다 약간의 차이는 있는데, 익스플로러, 크롬, 파이어폭스 같은 경우는 동일한 브라우저에 새탭으로 새창을 띄우고, 사파리는 새 브라우저를 띄웁니다.)
한가지 재미있는 것은 위의 두번째 인자로 _blank로 하는 것과 그렇지 않은 것에 차이가 있습니다.
위의 코드를 조금 수정하여
window.open('http://www.daum.net ', 'newWindow');
같이 호출하게 되면 위의 코드를 호출하는 버튼 또는 링크를 클릭하면 처음 새 창이 뜬 페이지에 계속 해서 페이지를 띄우려고 합니다. 즉, 여러번 호출을 해동 실제 뜨는 새 창은 하나 뿐입니다.
처음 위의 코드가 호출 될 때, newWindow라는 이름을 가진 새창을 만들어서 페이지를 띄우고, 그 이후 다시 위의 코드가 호출되면 역시 newWindow라는 이름의 브라우저가 이미 띄워져 있는지 찾고, 있으면 해당 브라우저 창에 페이지를 불러오려하기 때문입니다.
그런데 '_blank' 는 특수 속성 값으로 이름이 없는 창이라는 의미를 가집니다. (이는 모든 브라우저에서 동일하게 적용됩니다.) 이름이 없는 창이므로 위의 코드가 계속 호출되더라도 계속 해서 새창을 띄웁니다.
위와 유사한 코드로 다음과 같이 짤 수도 있습니다.
var newWindow = window.open("about:blank");
newWindow.location.href = 'http://www.daum.net';
위의 코드 또한 처음 설명한 코드와 동일하게 동작합니다.
이름이 없고, 이동 페이지 또한 없는 window.open 객체를 만든 후에 href 값을 주어 페이지를 이동시키는 방법입니다. (처음 소개한 코드가 더 간단하긴 합니다.^^)
---------------------------------------------------------------------------------------------
위의 코드들이 정상 작동함은 다음의 브라우저에서 확인하였습니다.
인터넷 익스플로러(IE) (버전 11.0.9600)
구글 크롬 (버전 37.0.2062)
사파리 (버전 5.1.7)
파이어폭스 (버전 32.0.1)
'개발&컴퓨터 > JQuery & JS' 카테고리의 다른 글
JQuery를 사용하여 onclick 이벤트 속성 제거하기 (0) | 2014.09.27 |
---|---|
AJAX 를 동기(Sync) 방식으로 사용하기. (10) | 2014.09.16 |
JQuery를 이용하여 html 태그(a 태그)의 onclick 이벤트를 동적으로 변경하기 (0) | 2014.09.13 |
JQuery로 A 태그의 location(href) 변경하는 방법. (4) | 2014.08.29 |
[JQuery] Radio 버튼의 값 설정하고, 가져오기. (0) | 2014.07.14 |