Post

비동기로 브라우저 새 창 띄우기

링크를 통하지 않고 페이지에서 브라우저 새 창을 띄우기

1
var window = window.open(url, windowName, [windowFeatures]);

Window 인터페이스인 open() 메서드는 명시된 리소스를 명시된 이름으로 브라우징 컨텍스트(윈도우, <iframe> 또는 탭)에 로드한다.

이름이 없다면 새 윈도우가 열리고 이 윈도우의 브라우징 컨텍스트에 명시된 리소스가 열린다.

Window.open()


빈 페이지를 띄우고 싶다면 아래와 같은 방식으로 하면 된다.

1
2
3
4
window.open("about:blank", "_blank");

// 혹은 그냥..
window.open("");

비동기로 받은 데이터를 새 창에 적용해야 할 때는,

1
2
3
4
5
6
7
$.ajax({
  url: "url",
  ...
  success: function (data) {
    window.open("about:blank", "_blank").document.write(data);
  },
});

위 코드는 비동기로 dom을 받아와야 할 때 새 창을 띄우고, data를 새 창의 document에 write 하도록 했다.

새 창을 변수로 선언하고, 나중에 url이나 데이터를 넣어줄 수도 있다.

1
2
3
4
5
6
7
8
9
var newTap = window.open("about:blank", "_blank");

$.ajax({
  url: "url",
  ...
  success: function (data) {
    newTap.location = 'url';
  },
});
This post is licensed under CC BY 4.0 by the author.