# BrowserView A `BrowserView` can be used to embed additional web content into a [`BrowserWindow`](browser-window.md). It is like a child window, except that it is positioned relative to its owning window. It is meant to be an alternative to the `webview` tag. ## Class: BrowserView > Create and control views. Process: [Main](../glossary.md#main-process) This module cannot be used until the `ready` event of the `app` module is emitted. ### Example ```js // In the main process. const { app, BrowserView, BrowserWindow } = require('electron') app.whenReady().then(() => { const win = new BrowserWindow({ width: 800, height: 600 }) const view = new BrowserView() win.setBrowserView(view) view.setBounds({ x: 0, y: 0, width: 300, height: 300 }) view.webContents.loadURL('https://electronjs.org') }) ``` ### `new BrowserView([options])` _Experimental_ * `options` Object (optional) * `webPreferences` [WebPreferences](structures/web-preferences.md?inline) (optional) - Settings of web page's features. ### Instance Properties Objects created with `new BrowserView` have the following properties: #### `view.webContents` _Experimental_ A [`WebContents`](web-contents.md) object owned by this view. ### Instance Methods Objects created with `new BrowserView` have the following instance methods: #### `view.setAutoResize(options)` _Experimental_ * `options` Object * `width` boolean (optional) - If `true`, the view's width will grow and shrink together with the window. `false` by default. * `height` boolean (optional) - If `true`, the view's height will grow and shrink together with the window. `false` by default. * `horizontal` boolean (optional) - If `true`, the view's x position and width will grow and shrink proportionally with the window. `false` by default. * `vertical` boolean (optional) - If `true`, the view's y position and height will grow and shrink proportionally with the window. `false` by default. #### `view.setBounds(bounds)` _Experimental_ * `bounds` [Rectangle](structures/rectangle.md) Resizes and moves the view to the supplied bounds relative to the window. #### `view.getBounds()` _Experimental_ Returns [`Rectangle`](structures/rectangle.md) The `bounds` of this BrowserView instance as `Object`. #### `view.setBackgroundColor(color)` _Experimental_ * `color` string - Color in Hex, RGB, ARGB, HSL, HSLA or named CSS color format. The alpha channel is optional for the hex type. Examples of valid `color` values: * Hex * #fff (RGB) * #ffff (ARGB) * #ffffff (RRGGBB) * #ffffffff (AARRGGBB) * RGB * rgb\((\[\d]+),\s*(\[\d]+),\s*(\[\d]+)\) * e.g. rgb(255, 255, 255) * RGBA * rgba\((\[\d]+),\s*(\[\d]+),\s*(\[\d]+),\s*(\[\d.]+)\) * e.g. rgba(255, 255, 255, 1.0) * HSL * hsl\((-?\[\d.]+),\s*(\[\d.]+)%,\s*(\[\d.]+)%\) * e.g. hsl(200, 20%, 50%) * HSLA * hsla\((-?\[\d.]+),\s*(\[\d.]+)%,\s*(\[\d.]+)%,\s*(\[\d.]+)\) * e.g. hsla(200, 20%, 50%, 0.5) * Color name * Options are listed in [SkParseColor.cpp](https://source.chromium.org/chromium/chromium/src/+/main:third_party/skia/src/utils/SkParseColor.cpp;l=11-152;drc=eea4bf52cb0d55e2a39c828b017c80a5ee054148) * Similar to CSS Color Module Level 3 keywords, but case-sensitive. * e.g. `blueviolet` or `red` **Note:** Hex format with alpha takes `AARRGGBB` or `ARGB`, _not_ `RRGGBBA` or `RGA`.