# BrowserWindow
`BrowserWindow` 類讓你有創建一個瀏覽器窗口的權力。例如:
```javascript
// In the main process.
const BrowserWindow = require('electron').BrowserWindow;
// Or in the renderer process.
const BrowserWindow = require('electron').remote.BrowserWindow;
var win = new BrowserWindow({ width: 800, height: 600, show: false });
win.on('closed', function() {
win = null;
});
win.loadURL('https://github.com');
win.show();
```
你也可以不通過chrome創建窗口,使用
[Frameless Window](frameless-window.md) API.
## Class: BrowserWindow
`BrowserWindow` 是一個
[EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter).
通過 `options` 可以創建一個具有本質屬性的 `BrowserWindow` .
### `new BrowserWindow([options])`
* `options` Object
* `width` Integer - 窗口寬度,單位像素. 默認是 `800`.
* `height` Integer - 窗口高度,單位像素. 默認是 `600`.
* `x` Integer - 窗口相對于屏幕的左偏移位置.默認居中.
* `y` Integer - 窗口相對于屏幕的頂部偏移位置.默認居中.
* `useContentSize` Boolean - `width` 和 `height` 使用web網頁size, 這意味著實際窗口的size應該包括窗口框架的size,稍微會大一點,默認為 `false`.
* `center` Boolean - 窗口屏幕居中.
* `minWidth` Integer - 窗口最小寬度,默認為 `0`.
* `minHeight` Integer - 窗口最小高度,默認為 `0`.
* `maxWidth` Integer - 窗口最大寬度,默認無限制.
* `maxHeight` Integer - 窗口最大高度,默認無限制.
* `resizable` Boolean - 是否可以改變窗口size,默認為 `true`.
* `movable` Boolean - 窗口是否可以拖動. 在 Linux 上無效. 默認為 `true`.
* `minimizable` Boolean - 窗口是否可以最小化. 在 Linux 上無效. 默認為 `true`.
* `maximizable` Boolean - 窗口是否可以最大化. 在 Linux 上無效. 默認為 `true`.
* `closable` Boolean - 窗口是否可以關閉. 在 Linux 上無效. 默認為 `true`.
* `alwaysOnTop` Boolean - 窗口是否總是顯示在其他窗口之前. 在 Linux 上無效. 默認為 `false`.
* `fullscreen` Boolean - 窗口是否可以全屏幕. 當明確設置值為When `false` ,全屏化按鈕將會隱藏,在 OS X 將禁用. 默認 `false`.
* `fullscreenable` Boolean - 在 OS X 上,全屏化按鈕是否可用,默認為 `true`.
* `skipTaskbar` Boolean - 是否在人物欄中顯示窗口. 默認是`false`.
* `kiosk` Boolean - kiosk 方式. 默認為 `false`.
* `title` String - 窗口默認title. 默認 `"Electron"`.
* `icon` [NativeImage](native-image.md) - 窗口圖標, 如果不設置,窗口將使用可用的默認圖標.
* `show` Boolean - 窗口創建的時候是否顯示. 默認為 `true`.
* `frame` Boolean - 指定 `false` 來創建一個
[Frameless Window](frameless-window.md). 默認為 `true`.
* `acceptFirstMouse` Boolean - 是否允許單擊web view來激活窗口 . 默認為 `false`.
* `disableAutoHideCursor` Boolean - 當 typing 時是否隱藏鼠標.默認 `false`.
* `autoHideMenuBar` Boolean - 除非點擊 `Alt`,否則隱藏菜單欄.默認為 `false`.
* `enableLargerThanScreen` Boolean - 是否允許允許改變窗口大小大于屏幕. 默認是 `false`.
* `backgroundColor` String -窗口的 background color 值為十六進制,如 `#66CD00` 或 `#FFF` 或 `#80FFFFFF` (支持透明度). 默認為在 Linux 和 Windows 上為
`#000` (黑色) , Mac上為 `#FFF`(或透明).
* `hasShadow` Boolean - 窗口是否有陰影. 只在 OS X 上有效. 默認為 `true`.
* `darkTheme` Boolean - 為窗口使用 dark 主題, 只在一些擁有 GTK+3 桌面環境上有效. 默認為 `false`.
* `transparent` Boolean - 窗口 [透明](frameless-window.md).
默認為 `false`.
* `type` String - 窗口type, 默認普通窗口. 下面查看更多.
* `titleBarStyle` String - 窗口標題欄樣式. 下面查看更多.
* `webPreferences` Object - 設置界面特性. 下面查看更多.
`type` 的值和效果不同平臺展示效果不同,具體:
* Linux, 可用值為 `desktop`, `dock`, `toolbar`, `splash`,
`notification`.
* OS X, 可用值為 `desktop`, `textured`.
* `textured` type 添加金屬梯度效果
(`NSTexturedBackgroundWindowMask`).
* `desktop` 設置窗口在桌面背景窗口水平
(`kCGDesktopWindowLevel - 1`). 注意桌面窗口不可聚焦, 不可不支持鍵盤和鼠標事件, 但是可以使用 `globalShortcut` 來解決輸入問題.
`titleBarStyle` 只在 OS X 10.10 Yosemite 或更新版本上支持.
可用值:
* `default` 以及無值, 顯示在 Mac 標題欄上為不透明的標準灰色.
* `hidden` 隱藏標題欄,內容充滿整個窗口, 然后它依然在左上角,仍然受標準窗口控制.
* `hidden-inset`主體隱藏,顯示小的控制按鈕在窗口邊緣.
`webPreferences` 參數是個對象,它的屬性:
* `nodeIntegration` Boolean - 是否完整支持node. 默認為 `true`.
* `preload` String - 界面的其它腳本運行之前預先加載一個指定腳本. 這個腳本將一直可以使用 node APIs 無論 node integration 是否開啟. 腳本路徑為絕對路徑.
當 node integration 關閉, 預加載的腳本將從全局范圍重新引入node的全局引用標志. 查看例子
[here](process.md#event-loaded).
* `session` [Session](session.md#class-session) - 設置界面session. 而不是直接忽略session對象 , 也可用 `partition` 來代替, 它接受一個 partition 字符串. 當同時使用 `session` 和 `partition`, `session` 優先級更高.
默認使用默認 session.
* `partition` String - 通過session的partition字符串來設置界面session. 如果 `partition` 以 `persist:` 開頭, 這個界面將會為所有界面使用相同的 `partition`. 如果沒有 `persist:` 前綴, 界面使用歷史session. 通過分享同一個 `partition`, 所有界面使用相同的session. 默認使用默認 session.
* `zoomFactor` Number - 界面默認縮放值, `3.0` 表示
`300%`. 默認 `1.0`.
* `javascript` Boolean - 開啟javascript支持. 默認為`true`.
* `webSecurity` Boolean - 當設置為 `false`, 它將禁用相同地方的規則 (通常測試服), 并且如果有2個非用戶設置的參數,就設置
`allowDisplayingInsecureContent` 和 `allowRunningInsecureContent` 的值為
`true`. 默認為 `true`.
* `allowDisplayingInsecureContent` Boolean -允許一個使用 https的界面來展示由 http URLs 傳過來的資源. 默認`false`.
* `allowRunningInsecureContent` Boolean - Boolean -允許一個使用 https的界面來渲染由 http URLs 提交的html,css,javascript. 默認為 `false`.
* `images` Boolean - 開啟圖片使用支持. 默認 `true`.
* `textAreasAreResizable` Boolean - textArea 可以編輯. 默認為 `true`.
* `webgl` Boolean - 開啟 WebGL 支持. 默認為 `true`.
* `webaudio` Boolean - 開啟 WebAudio 支持. 默認為 `true`.
* `plugins` Boolean - 是否開啟插件支持. 默認為 `false`.
* `experimentalFeatures` Boolean - 開啟 Chromium 的 可測試 特性.
默認為 `false`.
* `experimentalCanvasFeatures` Boolean - 開啟 Chromium 的 canvas 可測試特性. 默認為 `false`.
* `directWrite` Boolean - 開啟窗口的 DirectWrite font 渲染系統. 默認為 `true`.
* `blinkFeatures` String - 以 `,` 分隔的特性列表, 如
`CSSVariables,KeyboardEventKey`. 被支持的所有特性可在 [setFeatureEnabledFromString][blink-feature-string]
中找到.
* `defaultFontFamily` Object - 設置 font-family 默認字體.
* `standard` String - 默認為 `Times New Roman`.
* `serif` String - 默認為 `Times New Roman`.
* `sansSerif` String - 默認為 `Arial`.
* `monospace` String - 默認為 `Courier New`.
* `defaultFontSize` Integer - 默認為 `16`.
* `defaultMonospaceFontSize` Integer - 默認為 `13`.
* `minimumFontSize` Integer - 默認為 `0`.
* `defaultEncoding` String - 默認為 `ISO-8859-1`.
## 事件
`BrowserWindow` 對象可觸發下列事件:
**注意:** 一些事件只能在特定os環境中觸發,已經盡可能地標出.
### Event: 'page-title-updated'
返回:
* `event` Event
當文檔改變標題時觸發,使用 `event.preventDefault()` 可以阻止原窗口的標題改變.
### Event: 'close'
返回:
* `event` Event
在窗口要關閉的時候觸發. 它在DOM的 `beforeunload` and `unload` 事件之前觸發.使用 `event.preventDefault()` 可以取消這個操作
通常你想通過 `beforeunload` 處理器來決定是否關閉窗口,但是它也會在窗口重載的時候被觸發. 在 Electron 中,返回一個空的字符串或 `false` 可以取消關閉.例如:
```javascript
window.onbeforeunload = function(e) {
console.log('I do not want to be closed');
// Unlike usual browsers, in which a string should be returned and the user is
// prompted to confirm the page unload, Electron gives developers more options.
// Returning empty string or false would prevent the unloading now.
// You can also use the dialog API to let the user confirm closing the application.
e.returnValue = false;
};
```
### Event: 'closed'
當窗口已經關閉的時候觸發.當你接收到這個事件的時候,你應當刪除對已經關閉的窗口的引用對象和避免再次使用它.
### Event: 'unresponsive'
在界面卡死的時候觸發事件.
### Event: 'responsive'
在界面恢復卡死的時候觸發.
### Event: 'blur'
在窗口失去焦點的時候觸發.
### Event: 'focus'
在窗口獲得焦點的時候觸發.
### Event: 'maximize'
在窗口最大化的時候觸發.
### Event: 'unmaximize'
在窗口退出最大化的時候觸發.
### Event: 'minimize'
在窗口最小化的時候觸發.
### Event: 'restore'
在窗口從最小化恢復的時候觸發.
### Event: 'resize'
在窗口size改變的時候觸發.
### Event: 'move'
在窗口移動的時候觸發.
注意:在 OS X 中別名為 `moved`.
### Event: 'moved' _OS X_
在窗口移動的時候觸發.
### Event: 'enter-full-screen'
在的窗口進入全屏狀態時候觸發.
### Event: 'leave-full-screen'
在的窗口退出全屏狀態時候觸發.
### Event: 'enter-html-full-screen'
在的窗口通過 html api 進入全屏狀態時候觸發.
### Event: 'leave-html-full-screen'
在的窗口通過 html api 退出全屏狀態時候觸發.
### Event: 'app-command' _Windows_
在請求一個[App Command](https://msdn.microsoft.com/en-us/library/windows/desktop/ms646275(v=vs.85).aspx)的時候觸發.
典型的是鍵盤媒體或瀏覽器命令, Windows上的 "Back" 按鈕用作鼠標也會觸發.
```js
someWindow.on('app-command', function(e, cmd) {
// Navigate the window back when the user hits their mouse back button
if (cmd === 'browser-backward' && someWindow.webContents.canGoBack()) {
someWindow.webContents.goBack();
}
});
```
### Event: 'scroll-touch-begin' _OS X_
在滾動條事件開始的時候觸發.
### Event: 'scroll-touch-end' _OS X_
在滾動條事件結束的時候觸發.
## 方法
`BrowserWindow` 對象有如下方法:
### `BrowserWindow.getAllWindows()`
返回一個所有已經打開了窗口的對象數組.
### `BrowserWindow.getFocusedWindow()`
返回應用當前獲得焦點窗口,如果沒有就返回 `null`.
### `BrowserWindow.fromWebContents(webContents)`
* `webContents` [WebContents](web-contents.md)
根據 `webContents` 查找窗口.
### `BrowserWindow.fromId(id)`
* `id` Integer
根據 id 查找窗口.
### `BrowserWindow.addDevToolsExtension(path)`
* `path` String
添加位于 `path` 的開發者工具欄擴展,并且返回擴展項的名字.
這個擴展會被添加到歷史,所以只需要使用這個API一次,這個api不可用作編程使用.
### `BrowserWindow.removeDevToolsExtension(name)`
* `name` String
刪除開發者工具欄名為 `name` 的擴展.
## 實例屬性
使用 `new BrowserWindow` 創建的實例對象,有如下屬性:
```javascript
// In this example `win` is our instance
var win = new BrowserWindow({ width: 800, height: 600 });
```
### `win.webContents`
這個窗口的 `WebContents` 對象,所有與界面相關的事件和方法都通過它完成的.
查看 [`webContents` documentation](web-contents.md) 的方法和事件.
### `win.id`
窗口的唯一id.
## 實例方法
使用 `new BrowserWindow` 創建的實例對象,有如下方法:
**注意:** 一些方法只能在特定os環境中調用,已經盡可能地標出.
### `win.destroy()`
強制關閉窗口, `unload` and `beforeunload` 不會觸發,并且 `close` 也不會觸發, 但是它保證了 `closed` 觸發.
### `win.close()`
嘗試關閉窗口,這與用戶點擊關閉按鈕的效果一樣. 雖然網頁可能會取消關閉,查看 [close event](#event-close).
### `win.focus()`
窗口獲得焦點.
### `win.isFocused()`
返回 boolean, 窗口是否獲得焦點.
### `win.show()`
展示并且使窗口獲得焦點.
### `win.showInactive()`
展示窗口但是不獲得焦點.
### `win.hide()`
隱藏窗口.
### `win.isVisible()`
返回 boolean, 窗口是否可見.
### `win.maximize()`
窗口最大化.
### `win.unmaximize()`
取消窗口最大化.
### `win.isMaximized()`
返回 boolean, 窗口是否最大化.
### `win.minimize()`
窗口最小化. 在一些os中,它將在dock中顯示.
### `win.restore()`
將最小化的窗口恢復為之前的狀態.
### `win.isMinimized()`
返回 boolean, 窗口是否最小化.
### `win.setFullScreen(flag)`
* `flag` Boolean
設置是否全屏.
### `win.isFullScreen()`
返回 boolean, 窗口是否全屏化.
### `win.setAspectRatio(aspectRatio[, extraSize])` _OS X_
* `aspectRatio` 維持部分視圖內容窗口的高寬比值.
* `extraSize` Object (可選) - 維持高寬比值時不包含的額外size.
* `width` Integer
* `height` Integer
由一個窗口來維持高寬比值. `extraSize` 允許開發者使用它,它的單位為像素,不包含在 `aspectRatio` 中.這個 API 可用來區分窗口的size和內容的size .
想象一個普通可控的HD video 播放器窗口. 假如左邊緣有15控制像素,右邊緣有25控制像素,在播放器下面有50控制像素.為了在播放器內保持一個 16:9 的高寬比例,我們可以調用這個api傳入參數16/9 and
[ 40, 50 ].第二個參數不管網頁中的額外的寬度和高度在什么位置,只要它們存在就行.只需要把網頁中的所有額外的高度和寬度加起來就行.
### `win.setBounds(options[, animate])`
* `options` Object
* `x` Integer
* `y` Integer
* `width` Integer
* `height` Integer
* `animate` Boolean (可選) _OS X_
重新設置窗口的寬高值,并且移動到指定的 `x`, `y` 位置.
### `win.getBounds()`
返回一個對象,它包含了窗口的寬,高,x坐標,y坐標.
### `win.setSize(width, height[, animate])`
* `width` Integer
* `height` Integer
* `animate` Boolean (可選) _OS X_
重新設置窗口的寬高值.
### `win.getSize()`
返回一個數組,它包含了窗口的寬,高.
### `win.setContentSize(width, height[, animate])`
* `width` Integer
* `height` Integer
* `animate` Boolean (可選) _OS X_
重新設置窗口客戶端的寬高值(例如網頁界面).
### `win.getContentSize()`
返回一個數組,它包含了窗口客戶端的寬,高.
### `win.setMinimumSize(width, height)`
* `width` Integer
* `height` Integer
設置窗口最小化的寬高值.
### `win.getMinimumSize()`
返回一個數組,它包含了窗口最小化的寬,高.
### `win.setMaximumSize(width, height)`
* `width` Integer
* `height` Integer
設置窗口最大化的寬高值.
### `win.getMaximumSize()`
返回一個數組,它包含了窗口最大化的寬,高.
### `win.setResizable(resizable)`
* `resizable` Boolean
設置窗口是否可以被用戶改變size.
### `win.isResizable()`
返回 boolean,窗口是否可以被用戶改變size.
### `win.setMovable(movable)` _OS X_ _Windows_
* `movable` Boolean
設置窗口是否可以被用戶拖動. Linux 無效.
### `win.isMovable()` _OS X_ _Windows_
返回 boolean,窗口是否可以被用戶拖動. Linux 總是返回 `true`.
### `win.setMinimizable(minimizable)` _OS X_ _Windows_
* `minimizable` Boolean
設置窗口是否可以最小化. Linux 無效.
### `win.isMinimizable()` _OS X_ _Windows_
返回 boolean,窗口是否可以最小化. Linux 總是返回 `true`.
### `win.setMaximizable(maximizable)` _OS X_ _Windows_
* `maximizable` Boolean
設置窗口是否可以最大化. Linux 無效.
### `win.isMaximizable()` _OS X_ _Windows_
返回 boolean,窗口是否可以最大化. Linux 總是返回 `true`.
### `win.setFullScreenable(fullscreenable)`
* `fullscreenable` Boolean
設置點擊最大化按鈕是否可以全屏或最大化窗口.
### `win.isFullScreenable()`
返回 boolean,點擊最大化按鈕是否可以全屏或最大化窗口.
### `win.setClosable(closable)` _OS X_ _Windows_
* `closable` Boolean
設置窗口是否可以人為關閉. Linux 無效.
### `win.isClosable()` _OS X_ _Windows_
返回 boolean,窗口是否可以人為關閉. Linux 總是返回 `true`.
### `win.setAlwaysOnTop(flag)`
* `flag` Boolean
是否設置這個窗口始終在其他窗口之上.設置之后,這個窗口仍然是一個普通的窗口,不是一個不可以獲得焦點的工具箱窗口.
### `win.isAlwaysOnTop()`
返回 boolean,當前窗口是否始終在其它窗口之前.
### `win.center()`
窗口居中.
### `win.setPosition(x, y[, animate])`
* `x` Integer
* `y` Integer
* `animate` Boolean (可選) _OS X_
移動窗口到對應的 `x` and `y` 坐標.
### `win.getPosition()`
返回一個包含當前窗口位置的數組.
### `win.setTitle(title)`
* `title` String
改變原窗口的title.
### `win.getTitle()`
返回原窗口的title.
**注意:** 界面title可能和窗口title不相同.
### `win.flashFrame(flag)`
* `flag` Boolean
開始或停止顯示窗口來獲得用戶的關注.
### `win.setSkipTaskbar(skip)`
* `skip` Boolean
讓窗口不在任務欄中顯示.
### `win.setKiosk(flag)`
* `flag` Boolean
進入或離開 kiosk 模式.
### `win.isKiosk()`
返回 boolean,是否進入或離開 kiosk 模式.
### `win.getNativeWindowHandle()`
以 `Buffer` 形式返回這個具體平臺的窗口的句柄.
windows上句柄類型為 `HWND` ,OS X `NSView*` , Linux `Window`.
### `win.hookWindowMessage(message, callback)` _Windows_
* `message` Integer
* `callback` Function
攔截windows 消息,在 WndProc 接收到消息時觸發 `callback`函數.
### `win.isWindowMessageHooked(message)` _Windows_
* `message` Integer
返回 `true` or `false` 來代表是否攔截到消息.
### `win.unhookWindowMessage(message)` _Windows_
* `message` Integer
不攔截窗口消息.
### `win.unhookAllWindowMessages()` _Windows_
窗口消息全部不攔截.
### `win.setRepresentedFilename(filename)` _OS X_
* `filename` String
設置窗口當前文件路徑,并且將這個文件的圖標放在窗口標題欄上.
### `win.getRepresentedFilename()` _OS X_
獲取窗口當前文件路徑.
### `win.setDocumentEdited(edited)` _OS X_
* `edited` Boolean
明確指出窗口文檔是否可以編輯,如果可以編輯則將標題欄的圖標變成灰色.
### `win.isDocumentEdited()` _OS X_
返回 boolean,當前窗口文檔是否可編輯.
### `win.focusOnWebView()`
### `win.blurWebView()`
### `win.capturePage([rect, ]callback)`
* `rect` Object (可選) - 捕獲Page位置
* `x` Integer
* `y` Integer
* `width` Integer
* `height` Integer
* `callback` Function
捕獲 `rect` 中的page 的快照.完成后將調用回調函數 `callback` 并返回 `image` . `image` 是存儲了快照信息的[NativeImage](native-image.md)實例.如果不設置 `rect` 則將捕獲所有可見page.
### `win.print([options])`
類似 `webContents.print([options])`
### `win.printToPDF(options, callback)`
類似 `webContents.printToPDF(options, callback)`
### `win.loadURL(url[, options])`
類似 `webContents.loadURL(url[, options])`.
### `win.reload()`
類似 `webContents.reload`.
### `win.setMenu(menu)` _Linux_ _Windows_
* `menu` Menu
設置菜單欄的 `menu` ,設置它為 `null` 則表示不設置菜單欄.
### `win.setProgressBar(progress)`
* `progress` Double
在進度條中設置進度值,有效范圍 [0, 1.0].
當進度小于0時則不顯示進度;
當進度大于0時顯示結果不確定.
在libux上,只支持Unity桌面環境,需要指明 `*.desktop` 文件并且在 `package.json` 中添加文件名字.默認它為 `app.getName().desktop`.
### `win.setOverlayIcon(overlay, description)` _Windows 7+_
* `overlay` [NativeImage](native-image.md) - 在底部任務欄右邊顯示圖標.
* `description` String - 描述.
向當前任務欄添加一個 16 x 16 像素的圖標,通常用來覆蓋一些應用的狀態,或者直接來提示用戶.
### `win.setHasShadow(hasShadow)` _OS X_
* `hasShadow` (Boolean)
設置窗口是否應該有陰影.在Windows和Linux系統無效.
### `win.hasShadow()` _OS X_
返回 boolean,設置窗口是否有陰影.在Windows和Linux系統始終返回
`true`.
### `win.setThumbarButtons(buttons)` _Windows 7+_
* `buttons` Array
在窗口的任務欄button布局出為縮略圖添加一個有特殊button的縮略圖工具欄. 返回一個 `Boolean` 對象來指示是否成功添加這個縮略圖工具欄.
因為空間有限,縮略圖工具欄上的 button 數量不應該超過7個.一旦設置了,由于平臺限制,就不能移動它了.但是你可使用一個空數組來調用api來清除 buttons .
所有 `buttons` 是一個 `Button` 對象數組:
* `Button` Object
* `icon` [NativeImage](native-image.md) - 在工具欄上顯示的圖標.
* `click` Function
* `tooltip` String (可選) - tooltip 文字.
* `flags` Array (可選) - 控制button的狀態和行為. 默認它是 `['enabled']`.
`flags` 是一個數組,它包含下面這些 `String`s:
* `enabled` - button 為激活狀態并且開放給用戶.
* `disabled` -button 不可用. 目前它有一個可見的狀態來表示它不會響應你的行為.
* `dismissonclick` - 點擊button,這個縮略窗口直接關閉.
* `nobackground` - 不繪制邊框,僅僅使用圖像.
* `hidden` - button 對用戶不可見.
* `noninteractive` - button 可用但是不可響應; 也不顯示按下的狀態. 它的值意味著這是一個在通知單使用 button 的實例.
### `win.showDefinitionForSelection()` _OS X_
在界面查找選中文字時顯示彈出字典.
### `win.setAutoHideMenuBar(hide)`
* `hide` Boolean
設置窗口的菜單欄是否可以自動隱藏. 一旦設置了,只有當用戶按下 `Alt` 鍵時則顯示.
如果菜單欄已經可見,調用 `setAutoHideMenuBar(true)` 則不會立刻隱藏.
### `win.isMenuBarAutoHide()`
返回 boolean,窗口的菜單欄是否可以自動隱藏.
### `win.setMenuBarVisibility(visible)`
* `visible` Boolean
設置菜單欄是否可見.如果菜單欄自動隱藏,用戶仍然可以按下 `Alt` 鍵來顯示.
### `win.isMenuBarVisible()`
返回 boolean,菜單欄是否可見.
### `win.setVisibleOnAllWorkspaces(visible)`
* `visible` Boolean
設置窗口是否在所有地方都可見.
**注意:** 這個api 在windows無效.
### `win.isVisibleOnAllWorkspaces()`
返回 boolean,窗口是否在所有地方都可見.
**注意:** 在 windows上始終返回 false.
### `win.setIgnoreMouseEvents(ignore)` _OS X_
* `ignore` Boolean
忽略窗口的所有鼠標事件.
[blink-feature-string]: https://code.google.com/p/chromium/codesearch#chromium/src/out/Debug/gen/blink/platform/RuntimeEnabledFeatures.cpp&sq=package:chromium&type=cs&l=527
- 介紹
- 常見問題
- 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