メインコンテンツにスキップ

BrowserView

履歴
バージョン変更点
>=29.0.0
API DEPRECATED

BrowserViewクラスは非推奨となり、新しいWebContentsViewクラスに置き換えられました。

BrowserViewは、追加のWebコンテンツをBrowserWindowに埋め込むために使用できます。これは子ウィンドウのようなものですが、所有ウィンドウを基準に配置される点が異なります。webviewタグの代替となることを意図しています。

クラス: BrowserView

履歴
バージョン変更点
>=29.0.0
API DEPRECATED

ビューを作成および制御します。

BrowserViewクラスは非推奨となり、新しいWebContentsViewクラスに置き換えられました。

プロセス: メイン

このモジュールは、appモジュールのreadyイベントが発行されるまで使用できません。

// 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://electron.dokyumento.jp')
})

new BrowserView([options]) 試験的 非推奨

履歴
バージョン変更点
>=29.0.0
API DEPRECATED
  • options オブジェクト (オプション)
    • webPreferences WebPreferences (オプション) - Webページの機能の設定。
      • devTools boolean (オプション) - DevToolsを有効にするかどうか。falseに設定すると、BrowserWindow.webContents.openDevTools()を使用してDevToolsを開くことはできません。デフォルトはtrueです。
      • nodeIntegration boolean (オプション) - Node統合を有効にするかどうか。デフォルトはfalseです。
      • nodeIntegrationInWorker boolean (オプション) - WebワーカーでNode統合を有効にするかどうか。デフォルトはfalseです。詳細については、マルチスレッドを参照してください。
      • nodeIntegrationInSubFrames boolean (オプション) - iframeや子ウィンドウなどのサブフレームでNode.jsのサポートを有効にするための実験的なオプションです。すべてのプリロードはすべてのiframeに対してロードされ、process.isMainFrameを使用して、メインフレームにいるかどうかを判断できます。
      • preload string (オプション) - ページで他のスクリプトが実行される前にロードされるスクリプトを指定します。このスクリプトは、Node統合がオンになっているかオフになっているかに関わらず、常にNode APIにアクセスできます。値は、スクリプトへの絶対ファイルパスである必要があります。Node統合がオフになっている場合、プリロードスクリプトはNodeグローバルシンボルをグローバルスコープに再導入できます。例はこちらを参照してください。
      • sandbox boolean (オプション) - 設定すると、ウィンドウに関連付けられたレンダラーをサンドボックス化し、Chromium OSレベルのサンドボックスと互換性を持たせ、Node.jsエンジンを無効にします。これはnodeIntegrationオプションとは異なり、プリロードスクリプトで使用できるAPIはより制限されています。オプションの詳細については、こちらを参照してください。
      • session Session (オプション) - ページで使用されるセッションを設定します。Sessionオブジェクトを直接渡す代わりに、パーティション文字列を受け入れるpartitionオプションを使用することもできます。sessionpartitionの両方が提供されている場合、sessionが優先されます。デフォルトはデフォルトセッションです。
      • partition string (オプション) - セッションのパーティション文字列に従って、ページで使用されるセッションを設定します。partitionpersist:で始まる場合、ページは同じpartitionを持つアプリ内のすべてのページで使用できる永続セッションを使用します。persist:プレフィックスがない場合、ページはインメモリセッションを使用します。同じpartitionを割り当てることで、複数のページが同じセッションを共有できます。デフォルトはデフォルトセッションです。
      • zoomFactor number (オプション) - ページのデフォルトのズームファクター、3.0300%を表します。デフォルトは1.0です。
      • javascript boolean (オプション) - JavaScriptのサポートを有効にします。デフォルトはtrueです。
      • webSecurity boolean (オプション) - falseの場合、同一オリジンポリシーを無効にし (通常、人々がテストWebサイトを使用する場合)、このオプションがユーザーによって設定されていない場合は、allowRunningInsecureContenttrueに設定します。デフォルトはtrueです。
      • allowRunningInsecureContent boolean (オプション) - httpsページがhttp URLからのJavaScript、CSS、またはプラグインを実行できるようにします。デフォルトはfalseです。
      • images boolean (オプション) - 画像のサポートを有効にします。デフォルトはtrueです。
      • imageAnimationPolicy string (オプション) - 画像アニメーション(例:GIF)の実行方法を指定します。animateanimateOnce、またはnoAnimationを指定できます。デフォルトはanimateです。
      • textAreasAreResizable boolean (オプション) - TextArea要素をリサイズ可能にします。デフォルトはtrueです。
      • webgl boolean (オプション) - WebGLのサポートを有効にします。デフォルトはtrueです。
      • plugins boolean (オプション) - プラグインを有効にするかどうか。デフォルトはfalseです。
      • experimentalFeatures boolean (オプション) - Chromiumの実験的な機能を有効にします。デフォルトはfalseです。
      • scrollBounce boolean (オプション) macOS - macOSでスクロールバウンス(ラバーバンディング)効果を有効にします。デフォルトはfalseです。
      • enableBlinkFeatures string (オプション) - 有効にする機能文字列のリストを,で区切って指定します(例:CSSVariables,KeyboardEventKey)。サポートされている機能文字列の完全なリストは、RuntimeEnabledFeatures.json5ファイルにあります。
      • disableBlinkFeatures string (オプション) - 無効にする機能文字列のリストを,で区切って指定します(例:CSSVariables,KeyboardEventKey)。サポートされている機能文字列の完全なリストは、RuntimeEnabledFeatures.json5ファイルにあります。
      • defaultFontFamily Object (オプション) - font-familyのデフォルトフォントを設定します。
        • standard string (オプション) - デフォルトはTimes New Romanです。
        • serif string (オプション) - デフォルトはTimes New Romanです。
        • sansSerif string (オプション) - デフォルトはArialです。
        • monospace string (オプション) - デフォルトはCourier Newです。
        • cursive string (オプション) - デフォルトはScriptです。
        • fantasy string (オプション) - デフォルトはImpactです。
        • math string (オプション) - デフォルトはLatin Modern Mathです。
      • defaultFontSize Integer (オプション) - デフォルトは16です。
      • defaultMonospaceFontSize Integer (オプション) - デフォルトは13です。
      • minimumFontSize Integer (オプション) - デフォルトは0です。
      • defaultEncoding string (オプション) - デフォルトはISO-8859-1です。
      • backgroundThrottling boolean (オプション) - ページがバックグラウンドになったときに、アニメーションとタイマーをスロットリングするかどうか。これは、Page Visibility APIにも影響します。単一のbrowserWindowに表示されている少なくとも1つのwebContentsbackgroundThrottlingが無効になっている場合、フレームはウィンドウ全体とそれによって表示される他のwebContentsに対して描画およびスワップされます。デフォルトはtrueです。
      • offscreen boolean (オプション) - ブラウザウィンドウのオフスクリーンレンダリングを有効にするかどうか。デフォルトはfalseです。詳細については、オフスクリーンレンダリングチュートリアルを参照してください。
      • contextIsolation boolean (オプション) - Electron APIと指定されたpreloadスクリプトを別のJavaScriptコンテキストで実行するかどうか。デフォルトはtrueです。preloadスクリプトが実行されるコンテキストは、専用のdocumentグローバルとwindowグローバル、および独自のJavaScriptビルトインセット(ArrayObjectJSONなど)にのみアクセスでき、これらはすべてロードされたコンテンツからは見えません。Electron APIは、ロードされたページではなく、preloadスクリプトでのみ使用できます。このオプションは、ロードされたコンテンツがpreloadスクリプトや使用されているElectron APIを改ざんできないように、潜在的に信頼されていないリモートコンテンツをロードするときに使用する必要があります。このオプションは、Chromeコンテンツスクリプトで使用されているのと同じ手法を使用します。DevToolsの[コンソール]タブの上部にあるコンボボックスで「Electron Isolated Context」エントリを選択することで、このコンテキストにアクセスできます。
      • webviewTag boolean (オプション) - <webview> タグを有効にするかどうかを指定します。デフォルトはfalseです。注意: <webview> に設定された preload スクリプトは、実行時に Node インテグレーションが有効になるため、リモートや信頼できないコンテンツが、悪意のある可能性のある preload スクリプトで <webview> タグを作成できないようにする必要があります。preload スクリプトを取り除いたり、<webview> の初期設定を検証または変更したりするには、webContentswill-attach-webview イベントを使用できます。
      • additionalArguments string[] (オプション) - このアプリのレンダラープロセスの process.argv に追加される文字列のリストです。レンダラープロセスの preload スクリプトに小さなデータを渡すのに便利です。
      • safeDialogs boolean (オプション) - ブラウザスタイルの連続ダイアログ保護を有効にするかどうかを指定します。デフォルトはfalseです。
      • safeDialogsMessage string (オプション) - 連続ダイアログ保護がトリガーされたときに表示するメッセージです。定義されていない場合はデフォルトのメッセージが使用されます。現在、デフォルトのメッセージは英語であり、ローカライズされていないことに注意してください。
      • disableDialogs boolean (オプション) - ダイアログを完全に無効にするかどうかを指定します。safeDialogs を上書きします。デフォルトはfalseです。
      • navigateOnDragDrop boolean (オプション) - ファイルまたはリンクをページにドラッグアンドドロップしたときにナビゲーションが発生するかどうかを指定します。デフォルトは false です。
      • autoplayPolicy string (オプション) - ウィンドウ内のコンテンツに適用する自動再生ポリシーです。no-user-gesture-required, user-gesture-required, document-user-activation-required を指定できます。デフォルトは no-user-gesture-required です。
      • disableHtmlFullscreenWindowResize boolean (オプション) - HTMLフルスクリーンに入るときにウィンドウのサイズ変更を防ぐかどうかを指定します。デフォルトは false です。
      • accessibleTitle string (オプション) - スクリーンリーダーなどのアクセシビリティツールのみに提供される代替タイトル文字列です。この文字列はユーザーには直接表示されません。
      • spellcheck boolean (オプション) - ビルトインスペルチェッカーを有効にするかどうかを指定します。デフォルトは true です。
      • enableWebSQL boolean (オプション) - WebSQL API を有効にするかどうかを指定します。デフォルトは true です。
      • v8CacheOptions string (オプション) - blink によって使用される v8 コードキャッシュポリシーを強制します。使用可能な値は以下のとおりです。
        • none - コードキャッシュを無効にします
        • code - ヒューリスティックベースのコードキャッシュ
        • bypassHeatCheck - コードキャッシュヒューリスティックをバイパスしますが、遅延コンパイルを使用します
        • bypassHeatCheckAndEagerCompile - 上記と同じですが、コンパイルが即時です。デフォルトのポリシーは code です。
      • enablePreferredSizeMode boolean (オプション) - 推奨サイズモードを有効にするかどうかを指定します。推奨サイズは、スクロールを必要とせずにドキュメントのレイアウトを包含するのに必要な最小サイズです。これを有効にすると、推奨サイズが変更されたときに WebContentspreferred-size-changed イベントが発行されます。デフォルトは false です。
      • transparent boolean (オプション) - ゲストページの背景の透明度を有効にするかどうかを指定します。デフォルトは true です。注意: ゲストページのテキストと背景色は、ルート要素の カラースキーム から派生します。透明度が有効になっている場合、テキストの色はそれに応じて変更されますが、背景は透明のままになります。

インスタンスプロパティ

new BrowserView で作成されたオブジェクトには、次のプロパティがあります。

view.webContents 実験的 非推奨

履歴
バージョン変更点
>=29.0.0
API DEPRECATED

このビューが所有する WebContents オブジェクトです。

インスタンスメソッド

new BrowserView で作成されたオブジェクトには、次のインスタンスメソッドがあります。

view.setAutoResize(options) 実験的 非推奨

履歴
  • options Object
    • width boolean (オプション) - true の場合、ビューの幅はウィンドウとともに拡大および縮小します。デフォルトは false です。
    • height boolean (オプション) - true の場合、ビューの高さはウィンドウとともに拡大および縮小します。デフォルトは false です。
    • horizontal boolean (オプション) - true の場合、ビューの x 位置と幅はウィンドウと比例して拡大および縮小します。デフォルトは false です。
    • vertical boolean (オプション) - true の場合、ビューの y 位置と高さはウィンドウと比例して拡大および縮小します。デフォルトは false です。

view.setBounds(bounds) 実験的 非推奨

履歴
バージョン変更点
>=29.0.0
API DEPRECATED

ビューのサイズを変更し、ウィンドウに対する指定された bounds に移動します。

view.getBounds() 実験的 非推奨

履歴
バージョン変更点
>=29.0.0
API DEPRECATED

Rectangleを返します。

この BrowserView インスタンスの boundsObject として返します。

view.setBackgroundColor(color) 実験的 非推奨

履歴
バージョン変更点
>=29.0.0
API DEPRECATED
  • color string - 16進数、RGB、ARGB、HSL、HSLA、または名前付きCSSカラー形式の色。16進数タイプでは、アルファチャンネルはオプションです。

有効な color 値の例

  • 16進数
    • #fff (RGB)
    • #ffff (ARGB)
    • #ffffff (RRGGBB)
    • #ffffffff (AARRGGBB)
  • RGB
    • rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
      • 例: rgb(255, 255, 255)
  • RGBA
    • rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
      • 例: rgba(255, 255, 255, 1.0)
  • HSL
    • hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
      • 例: hsl(200, 20%, 50%)
  • HSLA
    • hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
      • 例: hsla(200, 20%, 50%, 0.5)
  • 色名
    • SkParseColor.cpp にリストされています。
    • CSS Color Module Level 3 キーワードに似ていますが、大文字と小文字を区別します。
      • 例: blueviolet または red

注意: アルファ付きの16進数形式は、RRGGBBAA または RGB ではなく、AARRGGBB または ARGB を使用します。