electron/docs/api/web-frame.md

194 lines
5.4 KiB
Markdown
Raw Normal View History

2015-08-29 06:20:49 +00:00
# webFrame
2014-06-16 06:56:24 +00:00
2016-04-21 22:39:12 +00:00
> Customize the rendering of the current web page.
2014-06-16 06:56:24 +00:00
2016-11-23 19:20:56 +00:00
Process: [Renderer](../glossary.md#renderer-process)
2016-11-03 17:26:00 +00:00
2014-06-16 06:56:24 +00:00
An example of zooming current page to 200%.
```javascript
const {webFrame} = require('electron')
2015-08-29 06:20:49 +00:00
webFrame.setZoomFactor(2)
2014-06-16 06:56:24 +00:00
```
2015-08-29 06:20:49 +00:00
## Methods
2016-04-26 17:28:04 +00:00
The `webFrame` module has the following methods:
2015-08-29 06:20:49 +00:00
### `webFrame.setZoomFactor(factor)`
2014-06-16 06:56:24 +00:00
2015-08-29 06:20:49 +00:00
* `factor` Number - Zoom factor.
2014-06-16 06:56:24 +00:00
2015-09-02 16:57:29 +00:00
Changes the zoom factor to the specified factor. Zoom factor is
zoom percent divided by 100, so 300% = 3.0.
2014-06-16 06:56:24 +00:00
2015-08-29 06:20:49 +00:00
### `webFrame.getZoomFactor()`
2014-06-16 06:56:24 +00:00
Returns `Number` - The current zoom factor.
2014-06-16 06:56:24 +00:00
2015-08-29 06:20:49 +00:00
### `webFrame.setZoomLevel(level)`
2014-06-16 06:56:24 +00:00
* `level` Number - Zoom level.
2014-06-16 06:56:24 +00:00
2015-09-01 03:05:57 +00:00
Changes the zoom level to the specified level. The original size is 0 and each
2014-06-16 06:56:24 +00:00
increment above or below represents zooming 20% larger or smaller to default
limits of 300% and 50% of original size, respectively.
2015-08-29 06:20:49 +00:00
### `webFrame.getZoomLevel()`
2014-06-16 06:56:24 +00:00
Returns `Number` - The current zoom level.
2014-12-20 06:34:34 +00:00
2015-08-29 06:20:49 +00:00
### `webFrame.setZoomLevelLimits(minimumLevel, maximumLevel)`
2015-08-27 14:08:25 +00:00
* `minimumLevel` Number
* `maximumLevel` Number
**Deprecated:** Call `setVisualZoomLevelLimits` instead to set the visual zoom
level limits. This method will be removed in Electron 2.0.
2016-11-21 20:16:13 +00:00
### `webFrame.setVisualZoomLevelLimits(minimumLevel, maximumLevel)`
2016-11-21 20:16:13 +00:00
* `minimumLevel` Number
* `maximumLevel` Number
Sets the maximum and minimum pinch-to-zoom level.
### `webFrame.setLayoutZoomLevelLimits(minimumLevel, maximumLevel)`
* `minimumLevel` Number
* `maximumLevel` Number
2016-11-21 20:16:13 +00:00
Sets the maximum and minimum layout-based (i.e. non-visual) zoom level.
2015-08-27 14:08:25 +00:00
2015-08-29 06:20:49 +00:00
### `webFrame.setSpellCheckProvider(language, autoCorrectWord, provider)`
2014-12-20 06:34:34 +00:00
* `language` String
* `autoCorrectWord` Boolean
* `provider` Object
* `spellCheck` Function - Returns `Boolean`.
2016-11-25 12:33:31 +00:00
* `text` String
2014-12-20 06:34:34 +00:00
Sets a provider for spell checking in input fields and text areas.
The `provider` must be an object that has a `spellCheck` method that returns
whether the word passed is correctly spelled.
An example of using [node-spellchecker][spellchecker] as provider:
```javascript
const {webFrame} = require('electron')
webFrame.setSpellCheckProvider('en-US', true, {
spellCheck (text) {
return !(require('spellchecker').isMisspelled(text))
2014-12-20 06:34:34 +00:00
}
})
2014-12-20 06:34:34 +00:00
```
2015-11-13 08:03:40 +00:00
### `webFrame.registerURLSchemeAsSecure(scheme)`
* `scheme` String
Registers the `scheme` as secure scheme.
Secure schemes do not trigger mixed content warnings. For example, `https` and
`data` are secure schemes because they cannot be corrupted by active network
attackers.
2015-11-13 08:03:40 +00:00
### `webFrame.registerURLSchemeAsBypassingCSP(scheme)`
* `scheme` String
2015-08-29 06:20:49 +00:00
Resources will be loaded from this `scheme` regardless of the current page's
Content Security Policy.
### `webFrame.registerURLSchemeAsPrivileged(scheme[, options])`
* `scheme` String
* `options` Object (optional)
2017-11-28 17:15:15 +00:00
* `secure` Boolean (optional) - Default true.
* `bypassCSP` Boolean (optional) - Default true.
* `allowServiceWorkers` Boolean (optional) - Default true.
* `supportFetchAPI` Boolean (optional) - Default true.
* `corsEnabled` Boolean (optional) - Default true.
Registers the `scheme` as secure, bypasses content security policy for resources,
allows registering ServiceWorker and supports fetch API.
Specify an option with the value of `false` to omit it from the registration.
An example of registering a privileged scheme, without bypassing Content Security Policy:
```javascript
const {webFrame} = require('electron')
webFrame.registerURLSchemeAsPrivileged('foo', { bypassCSP: false })
```
2016-01-13 03:21:16 +00:00
### `webFrame.insertText(text)`
* `text` String
2016-01-13 03:55:49 +00:00
Inserts `text` to the focused element.
2016-01-13 03:21:16 +00:00
2016-11-25 12:33:31 +00:00
### `webFrame.executeJavaScript(code[, userGesture, callback])`
2016-01-13 04:20:49 +00:00
* `code` String
* `userGesture` Boolean (optional) - Default is `false`.
2016-11-25 12:33:31 +00:00
* `callback` Function (optional) - Called after script has been executed.
* `result` Any
2016-01-13 04:20:49 +00:00
Returns `Promise` - A promise that resolves with the result of the executed code
or is rejected if the result of the code is a rejected promise.
2016-01-13 04:20:49 +00:00
Evaluates `code` in page.
In the browser window some HTML APIs like `requestFullScreen` can only be
invoked by a gesture from the user. Setting `userGesture` to `true` will remove
this limitation.
2016-05-12 22:03:47 +00:00
### `webFrame.getResourceUsage()`
Returns `Object`:
2016-10-25 03:35:18 +00:00
* `images` [MemoryUsageDetails](structures/memory-usage-details.md)
* `cssStyleSheets` [MemoryUsageDetails](structures/memory-usage-details.md)
* `xslStyleSheets` [MemoryUsageDetails](structures/memory-usage-details.md)
* `fonts` [MemoryUsageDetails](structures/memory-usage-details.md)
* `other` [MemoryUsageDetails](structures/memory-usage-details.md)
Returns an object describing usage information of Blink's internal memory
caches.
2016-05-12 22:03:47 +00:00
```javascript
const {webFrame} = require('electron')
console.log(webFrame.getResourceUsage())
```
This will generate:
2016-08-16 21:50:21 +00:00
```javascript
2016-05-12 22:03:47 +00:00
{
images: {
count: 22,
size: 2549,
liveSize: 2542
2016-05-12 22:03:47 +00:00
},
cssStyleSheets: { /* same with "images" */ },
xslStyleSheets: { /* same with "images" */ },
fonts: { /* same with "images" */ },
other: { /* same with "images" */ }
2016-08-16 21:49:42 +00:00
}
2016-05-12 22:03:47 +00:00
```
### `webFrame.clearCache()`
2016-05-12 22:03:47 +00:00
Attempts to free memory that is no longer being used (like images from a
previous navigation).
2016-05-12 22:03:47 +00:00
Note that blindly calling this method probably makes Electron slower since it
will have to refill these emptied caches, you should only call it if an event
2016-06-16 22:19:38 +00:00
in your app has occurred that makes you think your page is actually using less
2016-05-12 22:03:47 +00:00
memory (i.e. you have navigated from a super heavy page to a mostly empty one,
and intend to stay there).
2016-05-12 22:03:47 +00:00
2014-12-20 06:34:34 +00:00
[spellchecker]: https://github.com/atom/node-spellchecker