# `window.open` 함수

`window.open` 함수가 호출되면 새 창을 생성하고 `url` 페이지를 불러옵니다.
이 창은 지정한 `url`을 로드하여 만들어진 `BrowserWindow`의 새 인스턴스이며 본래 창 객체 대신 페이지의 컨트롤이 제한된 프록시 객체를 반환합니다.

프록시 객체는 브라우저의 웹 페이지 창과 호환될 수 있도록 일부 제한된 표준 기능만 가지고 있습니다.
창의 모든 컨트롤 권한을 가지려면 `BrowserWindow`를 직접 생성해서 사용해야 합니다.

새롭게 생성된 `BrowserWindow`는 기본적으로 부모 창의 옵션을 상속합니다. 이 옵션을 변경하려면 새 창을 열 때 `features` 인자를 지정해야 합니다.

### `window.open(url[, frameName][, features])`

* `url` String
* `frameName` String (optional)
* `features` String (optional)

`BrowserWindowProxy` 클래스의 객체를 반환하는 새로운 윈도우를 생성합니다.

`features` 문자열은 표준 브라우저의 포맷을 따르고 있지만, 각 기능은 `BrowserWindow`의 옵션이어야 합니다.

### `window.opener.postMessage(message, targetOrigin)`

* `message` String
* `targetOrigin` String

부모 윈도우에 메시지를 보냅니다. origin을 특정할 수 있으며 `*`를 지정하면 따로 origin 설정을 사용하지 않습니다.

## Class: BrowserWindowProxy

### `BrowserWindowProxy.blur()`

자식 윈도우의 포커스를 해제합니다.

### `BrowserWindowProxy.close()`

자식 윈도우를 강제로 닫습니다. unload 이벤트가 발생하지 않습니다.

Forcefully closes the child window without calling its unload event.

### `BrowserWindowProxy.closed`

자식 윈도우가 닫히면 true로 설정됩니다.

### `BrowserWindowProxy.eval(code)`

* `code` String

자식 윈도우에서 특정 스크립트를 실행합니다.

### `BrowserWindowProxy.focus()`

자식 윈도우에 포커스를 맞춥니다. (창을 맨 앞으로 가져옵니다)

### `BrowserWindowProxy.postMessage(message, targetOrigin)`

* `message` String
* `targetOrigin` String

자식 윈도우에 메시지를 보냅니다. origin을 특정할 수 있으며 `*`를 지정하면 따로 origin 설정을 사용하지 않습니다.

참고로 자식 윈도우의 `window.opener` 객체에는 다른 속성 없이 이 메서드 한 개만 구현되어 있습니다.
