diff --git a/docs/README.md b/docs/README.md index 474883f9ef3..9f859de9cb8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -20,6 +20,7 @@ Custom DOM elements: * [`File` object](api/file-object.md) * [`` tag](api/web-view-tag.md) +* [`window.open` function](api/window-open.md) Modules for browser side: diff --git a/docs/api/browser-window.md b/docs/api/browser-window.md index d3ac51f4464..a8456b5767d 100644 --- a/docs/api/browser-window.md +++ b/docs/api/browser-window.md @@ -641,7 +641,8 @@ Emitted when a redirect was received while requesting a resource. Emitted when the page requested to open a new window for `url`. It could be requested by `window.open` or an external link like ``. -Check the next section [Handling Child Windows](#handling-child-windows) for more information. + +By default a new `BrowserWindow` will be created for the `url`. Calling `event.preventDefault()` can prevent creating new windows. @@ -842,52 +843,3 @@ app.on('ready', function() { is different from the handlers on browser side. 2. There is no way to send synchronous messages from browser side to web pages, because it would be very easy to cause dead locks. - -## Handling Child Windows - -When the page contents request opening a new window, either by invoking -`window.open` or by an external link such as ``, by -default a new `BrowserWindow` will be created for the `url`, and a proxy -will be returned to `window.open` to let the page to have limited control over it. - -The proxy has some limited standard functionality implemented, which will help -the page to interact with it. The following methods are avaialable: - -### Window.blur() - -Removes focus from the child window. - -### Window.close() - -Forcefully closes the child window without calling its unload event. - -### Window.closed - -Set to true after the child window gets closed. - -### Window.eval(code) - -* `code` String - -Evaluates the code in the child window. - -### Window.focus() - -Focuses the child window (brings the window to front). - -### Window.postMessage(message, targetOrigin) - -* `message` String -* `targetOrigin` String - -Sends a message to the child window with the specified origin or "*" for no origin preference. - -In addition to these methods, the child window implements `window.opener` object with no properties -and a single method: - -### window.opener.postMessage(message, targetOrigin) - -* `message` String -* `targetOrigin` String - -Sends a message to the parent window with the specified origin or "*" for no origin preference. diff --git a/docs/api/window-open.md b/docs/api/window-open.md new file mode 100644 index 00000000000..23bcf2b95f3 --- /dev/null +++ b/docs/api/window-open.md @@ -0,0 +1,60 @@ +# `window.open` function + +When `window.open` is called to create a new window in web page, a new instance +of `BrowserWindow` will be created for the `url`, and a proxy will be returned +to `window.open` to let the page to have limited control over it. + +The proxy only has some limited standard functionality implemented to be +compatible with traditional web pages, for full control of the created window +you should create a `BrowserWindow` directly. + +## window.open(url, [frameName[, features]]) + +* `url` String +* `frameName` String +* `features` String + +Creates a new window and returns an instance of `BrowserWindowProxy` class. + +## window.opener.postMessage(message, targetOrigin) + +* `message` String +* `targetOrigin` String + +Sends a message to the parent window with the specified origin or `*` for no +origin preference. + +## Class: BrowserWindowProxy + +### BrowserWindowProxy.blur() + +Removes focus from the child window. + +### BrowserWindowProxy.close() + +Forcefully closes the child window without calling its unload event. + +### BrowserWindowProxy.closed + +Set to true after the child window gets closed. + +### BrowserWindowProxy.eval(code) + +* `code` String + +Evaluates the code in the child window. + +### BrowserWindowProxy.focus() + +Focuses the child window (brings the window to front). + +### BrowserWindowProxy.postMessage(message, targetOrigin) + +* `message` String +* `targetOrigin` String + +Sends a message to the child window with the specified origin or `*` for no +origin preference. + +In addition to these methods, the child window implements `window.opener` object +with no properties and a single method: