# `window.open` 函數
當在界面中使用 `window.open` 來創建一個新的窗口時候,將會創建一個 `BrowserWindow` 的實例,并且將返回一個標識,這個界面通過標識來對這個新的窗口進行有限的控制.
這個標識對傳統的web界面來說,通過它能對子窗口進行有限的功能性兼容控制.
想要完全的控制這個窗口,可以直接創建一個 `BrowserWindow` .
新創建的 `BrowserWindow` 默認為繼承父窗口的屬性參數,想重寫屬性的話可以在 `features` 中設置他們.
### `window.open(url[, frameName][, features])`
* `url` String
* `frameName` String (可選)
* `features` String (可選)
創建一個新的window并且返回一個 `BrowserWindowProxy` 類的實例.
`features` 遵循標準瀏覽器的格式,但是每個feature 應該作為 `BrowserWindow` 參數的一個字段.
### `window.opener.postMessage(message, targetOrigin)`
* `message` String
* `targetOrigin` String
通過指定位置或用 `*` 來代替沒有明確位置來向父窗口發送信息.
## Class: BrowserWindowProxy
`BrowserWindowProxy` 由`window.open` 創建返回,并且提供了對子窗口的有限功能性控制.
### `BrowserWindowProxy.blur()`
子窗口的失去焦點.
### `BrowserWindowProxy.close()`
強行關閉子窗口,忽略卸載事件.
### `BrowserWindowProxy.closed`
在子窗口關閉之后恢復正常.
### `BrowserWindowProxy.eval(code)`
* `code` String
評估子窗口的代碼.
### `BrowserWindowProxy.focus()`
子窗口獲得焦點(讓其顯示在最前).
### `BrowserWindowProxy.postMessage(message, targetOrigin)`
* `message` String
* `targetOrigin` String
通過指定位置或用 `*` 來代替沒有明確位置來向子窗口發送信息.
除了這些方法,子窗口還可以無特性和使用單一方法來實現 `window.opener` 對象.
- 介紹
- 常見問題
- Electron 常見問題
- 向導
- 支持平臺
- 分發應用
- 提交應用到 Mac App Store
- 打包應用
- 使用 Node 原生模塊
- 主進程調試
- 使用 Selenium 和 WebDriver
- 使用開發人員工具擴展
- 使用 Pepper Flash 插件
- 使用 Widevine CDM 插件
- 教程
- 快速入門
- 桌面環境集成
- 在線/離線事件探測
- API文檔
- 簡介
- 進程對象
- 支持的 Chrome 命令行開關
- 環境變量
- 自定義的 DOM 元素
- File 對象
- <webview> 標簽
- window.open 函數
- 在主進程內可用的模塊
- app
- autoUpdater
- BrowserWindow
- contentTracing
- dialog
- globalShortcut
- ipcMain
- Menu
- MenuItem
- powerMonitor
- powerSaveBlocker
- protocol
- session
- webContents
- Tray
- 在渲染進程(網頁)內可用的模塊
- desktopCapturer
- ipcRenderer
- remote
- webFrame
- 在兩種進程中都可用的模塊
- clipboard
- crashReporter
- nativeImage
- screen
- shell
- 開發
- 代碼規范
- 源碼目錄結構
- 與 NW.js(原 node-webkit)在技術上的差異
- 構建系統概覽
- 構建步驟(OS X)
- 構建步驟(Windows)
- 構建步驟(Linux)
- 在調試中使用 Symbol Server