This commit is contained in:
Weiqiang Lin 2017-02-09 15:24:29 +08:00
Родитель 5cd18fe32a
Коммит 5d35d2476d
1 изменённых файлов: 15 добавлений и 42 удалений

Просмотреть файл

@ -1,11 +1,13 @@
# `window.open` 函数
当在界面中使用 `window.open` 来创建一个新的窗口时候,将会创建一个 `BrowserWindow` 的实例,并且将返回一个标识,这个界面通过标识来对这个新的窗口进行有限的控制.
> 通过链接打开一个新窗口。
这个标识对传统的web界面来说通过它能对子窗口进行有限的功能性兼容控制.
想要完全的控制这个窗口,可以直接创建一个 `BrowserWindow` .
当在界面中使用 `window.open` 来创建一个新的窗口时候,将会创建一个 `BrowserWindow` 的实例,并且将返回一个标识,这个界面通过标识来对这个新的窗口进行有限的控制。
新创建的 `BrowserWindow` 默认为继承父窗口的属性参数,想重写属性的话可以在 `features` 中设置他们.
这个标识对传统的web界面来说通过它能对子窗口进行有限的功能性兼容控制。
想要完全的控制这个窗口,可以直接创建一个 `BrowserWindow`
新创建的 `BrowserWindow` 默认为继承父窗口的属性参数,想重写属性的话可以在 `features` 中设置他们。
### `window.open(url[, frameName][, features])`
@ -13,48 +15,19 @@
* `frameName` String (可选)
* `features` String (可选)
创建一个新的window并且返回一个 `BrowserWindowProxy` 类的实例.
创建一个新的 window 并且返回一个 [`BrowserWindowProxy`](browser-window-proxy.md) 类的实例。
`features` 遵循标准浏览器的格式但是每个feature 应该作为 `BrowserWindow` 参数的一个字段.
`features` 遵循标准浏览器的格式,但是每个 feature 应该作为 `BrowserWindow` 参数的一个字段。
**注意:**
* 如果在父窗口禁用 Node integration那么在新打开的 `window` 中将始终禁用。
* 非标准功能(不由 Chromium 或 Electron 处理)的
   `features` 将被传递给任何注册的 `webContent``new-window` 事件
  `additionalFeatures` 参数的处理程序。
### `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` 对象.
通过指定位置或用 `*` 来代替没有明确位置来向父窗口发送信息。