## Class: BrowserView > Create and control views. Process: [Main](../glossary.md#main-process) 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. ### Example ```javascript // In the main process. const { BrowserView, BrowserWindow } = require('electron') 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` Object (optional) - See [BrowserWindow](browser-window.md). ### Static Methods #### `BrowserView.getAllViews()` Returns `BrowserView[]` - An array of all opened BrowserViews. #### `BrowserView.fromWebContents(webContents)` * `webContents` [WebContents](web-contents.md) Returns `BrowserView | null` - The BrowserView that owns the given `webContents` or `null` if the contents are not owned by a BrowserView. #### `BrowserView.fromId(id)` * `id` Integer Returns `BrowserView` - The view with the given `id`. ### Instance Properties Objects created with `new BrowserView` have the following properties: #### `view.webContents` _Experimental_ A [`WebContents`](web-contents.md) object owned by this view. #### `view.id` _Experimental_ A `Integer` representing the unique ID of the view. ### Instance Methods Objects created with `new BrowserView` have the following instance methods: #### `view.destroy()` Force closing the view, the `unload` and `beforeunload` events won't be emitted for the web page. After you're done with a view, call this function in order to free memory and other resources as soon as possible. #### `view.isDestroyed()` Returns `Boolean` - Whether the view is destroyed. #### `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 `#aarrggbb` or `#argb` form. The alpha channel is optional.