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

webContents

Webページをレンダリングおよび制御します。

プロセス: メイン

webContentsEventEmitter です。これは、Webページのレンダリングと制御を担当し、BrowserWindow オブジェクトのプロパティです。 webContents オブジェクトへのアクセス例を次に示します。

const { BrowserWindow } = require('electron')

const win = new BrowserWindow({ width: 800, height: 1500 })
win.loadURL('https://github.com')

const contents = win.webContents
console.log(contents)

いくつかのイベントを使用して、webContents 内で発生するナビゲーションを監視できます。

ドキュメントナビゲーション

webContents が別のページに移動する場合(ページ内ナビゲーション とは対照的に)、次のイベントが発行されます。

キャンセル可能なイベントのいずれかで event.preventDefault() が呼び出された場合、後続のイベントは発行されません。

ページ内ナビゲーション

ページ内ナビゲーションでは、ページはリロードされませんが、代わりに現在のページ内の場所に移動します。これらのイベントはキャンセルできません。ページ内ナビゲーションの場合、次のイベントがこの順序で発生します。

フレームナビゲーション

will-navigate および did-navigate イベントは、メインフレーム がナビゲートする場合にのみ発生します。 <iframe> のナビゲーションも監視する場合は、will-frame-navigate および did-frame-navigate イベントを使用します。

メソッド

これらのメソッドには、webContents モジュールからアクセスできます

const { webContents } = require('electron')
console.log(webContents)

webContents.getAllWebContents()

WebContents[] を返します - すべての WebContents インスタンスの配列。これには、すべてのウィンドウ、webview、開いている devtools、および devtools 拡張機能のバックグラウンドページの Webコンテンツが含まれます。

webContents.getFocusedWebContents()

WebContents | null を返します - このアプリケーションでフォーカスされている Webコンテンツ。それ以外の場合は null を返します。

webContents.fromId(id)

  • id 整数

WebContents | undefined を返します - 指定された ID を持つ WebContents インスタンス。または、指定された ID に関連付けられた WebContents がない場合は undefined を返します。

webContents.fromFrame(frame)

  • frame WebFrameMain

WebContents | undefined を返します - 指定された WebFrameMain を持つ WebContents インスタンス。または、指定された WebFrameMain に関連付けられた WebContents がない場合は undefined を返します。

webContents.fromDevToolsTargetId(targetId)

  • targetId string - WebContents インスタンスに関連付けられた Chrome DevTools プロトコルの TargetID

WebContents | undefined を返します - 指定された TargetID を持つ WebContents インスタンス。または、指定された TargetID に関連付けられた WebContents がない場合は undefined を返します。

Chrome DevTools プロトコル と通信する場合、割り当てられた TargetID に基づいて WebContents インスタンスを検索すると便利な場合があります。

async function lookupTargetId (browserWindow) {
const wc = browserWindow.webContents
await wc.debugger.attach('1.3')
const { targetInfo } = await wc.debugger.sendCommand('Target.getTargetInfo')
const { targetId } = targetInfo
const targetWebContents = await wc.fromDevToolsTargetId(targetId)
}

クラス: WebContents

BrowserWindow インスタンスの内容をレンダリングおよび制御します。

プロセス: メイン
このクラスは 'electron' モジュールからエクスポートされません。これは、Electron API の他のメソッドの戻り値としてのみ使用できます。

インスタンスイベント

イベント: 'did-finish-load'

ナビゲーションが完了したとき、つまり、タブのスピナーが回転を停止し、onload イベントがディスパッチされたときに発行されます。

イベント: 'did-fail-load'

返り値

  • event イベント
  • errorCode 整数
  • errorDescription 文字列
  • validatedURL 文字列
  • isMainFrame 真偽値
  • frameProcessId 整数
  • frameRoutingId 整数

このイベントは did-finish-load に似ていますが、ロードが失敗した場合に発行されます。エラーコードとその意味の完全なリストは、こちらで確認できます。

イベント: 'did-fail-provisional-load'

返り値

  • event イベント
  • errorCode 整数
  • errorDescription 文字列
  • validatedURL 文字列
  • isMainFrame 真偽値
  • frameProcessId 整数
  • frameRoutingId 整数

このイベントは did-fail-load に似ていますが、ロードがキャンセルされた場合(例: window.stop() が呼び出された場合)に発行されます。

イベント: 'did-frame-finish-load'

返り値

  • event イベント
  • isMainFrame 真偽値
  • frameProcessId 整数
  • frameRoutingId 整数

フレームがナビゲーションを完了したときに発行されます。

イベント: 'did-start-loading'

タブのスピナーが回転を開始した時点に対応します。

イベント: 'did-stop-loading'

タブのスピナーが回転を停止した時点に対応します。

イベント: 'dom-ready'

トップレベルフレームのドキュメントがロードされたときに発行されます。

イベント: 'page-title-updated'

返り値

  • event イベント
  • title 文字列
  • explicitSet 真偽値

ナビゲーション中にページタイトルが設定されたときに発行されます。タイトルがファイル URL から合成された場合、explicitSet は false になります。

イベント: 'page-favicon-updated'

返り値

  • event イベント
  • favicons 文字列[] - URL の配列。

ページがファビコンの URL を受信したときに発行されます。

イベント: 'content-bounds-updated'

返り値

  • event イベント
  • bounds Rectangle - 要求された新しいコンテンツの境界

ページが window.moveTowindow.resizeTo、または関連する API を呼び出したときに発行されます。

デフォルトでは、これによりウィンドウが移動します。この動作を防ぐには、event.preventDefault() を呼び出します。

イベント: 'did-create-window'

返り値

  • window BrowserWindow
  • details オブジェクト
    • url string - 作成されたウィンドウの URL。
    • frameName string - window.open() の呼び出しで作成されたウィンドウに与えられた名前です。
    • options BrowserWindowConstructorOptions - BrowserWindow の作成に使用されるオプションです。これらは優先度が高い順に、window.open()features 文字列から解析されたオプション、親から継承されたセキュリティ関連の webPreferences、および webContents.setWindowOpenHandler によって与えられたオプションがマージされます。認識されないオプションはフィルターで除外されません。
    • referrer Referrer - 新しいウィンドウに渡されるリファラーです。リファラーポリシーによっては、Referer ヘッダーが送信される場合と送信されない場合があります。
    • postBody PostBody (オプション) - 新しいウィンドウに送信されるポストデータと、設定される適切なヘッダーです。ポストデータを送信しない場合は、値は null になります。ウィンドウが target=_blank を設定したフォームによって作成されている場合にのみ定義されます。
    • disposition string - defaultforeground-tabbackground-tabnew-window、または other を指定できます。

レンダラーで window.open を介してウィンドウが正常に作成されたに発行されます。webContents.setWindowOpenHandler からウィンドウの作成がキャンセルされた場合は発行されません。

詳細および webContents.setWindowOpenHandler と組み合わせて使用する方法については、window.open() を参照してください。

イベント: 'will-navigate'

返り値

  • details Event<>
    • url string - フレームが移動しようとしている URL です。
    • isSameDocument boolean - このイベントは、window.history API を使用した同じドキュメント内の移動や、参照フラグメントの移動では発生しません。このプロパティは、このイベントでは常に false に設定されます。
    • isMainFrame boolean - ナビゲーションがメインフレームで発生している場合は true です。
    • frame WebFrameMain - ナビゲートされるフレームです。
    • initiator WebFrameMain (オプション) - ナビゲーションを開始したフレームです。親フレーム (フレームの名前付きの window.open を介したなど) の場合もあれば、フレームによって開始されなかった場合は null の場合もあります。開始フレームがイベントが発行される前に削除された場合も null になる可能性があります。
  • url string 非推奨
  • isInPlace boolean 非推奨
  • isMainFrame boolean 非推奨
  • frameProcessId Integer 非推奨
  • frameRoutingId Integer 非推奨

ユーザーまたはページがメインフレームでナビゲーションを開始しようとしたときに発行されます。window.location オブジェクトが変更されたり、ユーザーがページ内のリンクをクリックした場合などに発生します。

このイベントは、webContents.loadURLwebContents.back などの API を使用してプログラムでナビゲーションが開始された場合には発行されません。

また、アンカーリンクをクリックしたり、window.location.hash を更新したりするなどのページ内ナビゲーションでも発行されません。この目的には did-navigate-in-page イベントを使用してください。

event.preventDefault() を呼び出すと、ナビゲーションが阻止されます。

イベント: 'will-frame-navigate'

返り値

  • details Event<>
    • url string - フレームが移動しようとしている URL です。
    • isSameDocument boolean - このイベントは、window.history API を使用した同じドキュメント内の移動や、参照フラグメントの移動では発生しません。このプロパティは、このイベントでは常に false に設定されます。
    • isMainFrame boolean - ナビゲーションがメインフレームで発生している場合は true です。
    • frame WebFrameMain - ナビゲートされるフレームです。
    • initiator WebFrameMain (オプション) - ナビゲーションを開始したフレームです。親フレーム (フレームの名前付きの window.open を介したなど) の場合もあれば、フレームによって開始されなかった場合は null の場合もあります。開始フレームがイベントが発行される前に削除された場合も null になる可能性があります。

ユーザーまたはページが任意のフレームでナビゲーションを開始しようとしたときに発行されます。window.location オブジェクトが変更されたり、ユーザーがページ内のリンクをクリックした場合などに発生します。

will-navigate とは異なり、will-frame-navigate はメインフレームまたはそのサブフレームのいずれかがナビゲートを試みたときに発行されます。ナビゲーションイベントがメインフレームから発生した場合、isMainFrametrue になります。

このイベントは、webContents.loadURLwebContents.back などの API を使用してプログラムでナビゲーションが開始された場合には発行されません。

また、アンカーリンクをクリックしたり、window.location.hash を更新したりするなどのページ内ナビゲーションでも発行されません。この目的には did-navigate-in-page イベントを使用してください。

event.preventDefault() を呼び出すと、ナビゲーションが阻止されます。

イベント: 'did-start-navigation'

返り値

  • details Event<>
    • url string - フレームが移動しようとしている URL です。
    • isSameDocument boolean - ドキュメントを変更せずにナビゲーションが発生したかどうか。同じドキュメント内のナビゲーションの例としては、参照フラグメントナビゲーション、pushState/replaceState、および同じページ履歴ナビゲーションがあります。
    • isMainFrame boolean - ナビゲーションがメインフレームで発生している場合は true です。
    • frame WebFrameMain - ナビゲートされるフレームです。
    • initiator WebFrameMain (オプション) - ナビゲーションを開始したフレームです。親フレーム (フレームの名前付きの window.open を介したなど) の場合もあれば、フレームによって開始されなかった場合は null の場合もあります。開始フレームがイベントが発行される前に削除された場合も null になる可能性があります。
  • url string 非推奨
  • isInPlace boolean 非推奨
  • isMainFrame boolean 非推奨
  • frameProcessId Integer 非推奨
  • frameRoutingId Integer 非推奨

任意のフレーム (メインフレームを含む) がナビゲーションを開始したときに発行されます。

イベント: 'will-redirect'

返り値

  • details Event<>
    • url string - フレームが移動しようとしている URL です。
    • isSameDocument boolean - ドキュメントを変更せずにナビゲーションが発生したかどうか。同じドキュメント内のナビゲーションの例としては、参照フラグメントナビゲーション、pushState/replaceState、および同じページ履歴ナビゲーションがあります。
    • isMainFrame boolean - ナビゲーションがメインフレームで発生している場合は true です。
    • frame WebFrameMain - ナビゲートされるフレームです。
    • initiator WebFrameMain (オプション) - ナビゲーションを開始したフレームです。親フレーム (フレームの名前付きの window.open を介したなど) の場合もあれば、フレームによって開始されなかった場合は null の場合もあります。開始フレームがイベントが発行される前に削除された場合も null になる可能性があります。
  • url string 非推奨
  • isInPlace boolean 非推奨
  • isMainFrame boolean 非推奨
  • frameProcessId Integer 非推奨
  • frameRoutingId Integer 非推奨

ナビゲーション中にサーバー側のリダイレクトが発生したときに発行されます。たとえば、302 リダイレクトなどです。

このイベントは、did-start-navigation の後、および同じナビゲーションの did-redirect-navigation イベントの前に常に発行されます。

event.preventDefault() を呼び出すと、ナビゲーション (リダイレクトだけでなく) が阻止されます。

イベント: 'did-redirect-navigation'

返り値

  • details Event<>
    • url string - フレームが移動しようとしている URL です。
    • isSameDocument boolean - ドキュメントを変更せずにナビゲーションが発生したかどうか。同じドキュメント内のナビゲーションの例としては、参照フラグメントナビゲーション、pushState/replaceState、および同じページ履歴ナビゲーションがあります。
    • isMainFrame boolean - ナビゲーションがメインフレームで発生している場合は true です。
    • frame WebFrameMain - ナビゲートされるフレームです。
    • initiator WebFrameMain (オプション) - ナビゲーションを開始したフレームです。親フレーム (フレームの名前付きの window.open を介したなど) の場合もあれば、フレームによって開始されなかった場合は null の場合もあります。開始フレームがイベントが発行される前に削除された場合も null になる可能性があります。
  • url string 非推奨
  • isInPlace boolean 非推奨
  • isMainFrame boolean 非推奨
  • frameProcessId Integer 非推奨
  • frameRoutingId Integer 非推奨

ナビゲーション中にサーバー側のリダイレクトが発生した後に発行されます。たとえば、302 リダイレクトなどです。

このイベントは阻止できません。リダイレクトを阻止したい場合は、上記の will-redirect イベントを確認する必要があります。

イベント: 'did-navigate'

返り値

  • event イベント
  • url string
  • httpResponseCode Integer - HTTP ナビゲーション以外の場合は -1
  • httpStatusText string - HTTP ナビゲーション以外の場合は空

メインフレームのナビゲーションが完了したときに発行されます。

このイベントは、アンカーリンクをクリックしたり、window.location.hash を更新したりするなどのページ内ナビゲーションでは発行されません。この目的には did-navigate-in-page イベントを使用してください。

イベント: 'did-frame-navigate'

返り値

  • event イベント
  • url string
  • httpResponseCode Integer - HTTP ナビゲーション以外の場合は -1
  • httpStatusText string - HTTP ナビゲーション以外の場合は空、
  • isMainFrame 真偽値
  • frameProcessId 整数
  • frameRoutingId 整数

任意のフレームのナビゲーションが完了したときに発行されます。

このイベントは、アンカーリンクをクリックしたり、window.location.hash を更新したりするなどのページ内ナビゲーションでは発行されません。この目的には did-navigate-in-page イベントを使用してください。

イベント: 'did-navigate-in-page'

返り値

  • event イベント
  • url string
  • isMainFrame 真偽値
  • frameProcessId 整数
  • frameRoutingId 整数

任意のフレームでページ内ナビゲーションが発生したときに発行されます。

ページ内ナビゲーションが発生すると、ページ URL は変更されますが、ページ外へのナビゲーションは発生しません。これが起こる例としては、アンカーリンクがクリックされた場合や、DOM の hashchange イベントがトリガーされた場合などがあります。

イベント: 'will-prevent-unload'

返り値

  • event イベント

beforeunload イベントハンドラーがページアンロードをキャンセルしようとしているときに発行されます。

event.preventDefault() を呼び出すと、beforeunload イベントハンドラーが無視され、ページのアンロードが許可されます。

const { BrowserWindow, dialog } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
win.webContents.on('will-prevent-unload', (event) => {
const choice = dialog.showMessageBoxSync(win, {
type: 'question',
buttons: ['Leave', 'Stay'],
title: 'Do you want to leave this site?',
message: 'Changes you made may not be saved.',
defaultId: 0,
cancelId: 1
})
const leave = (choice === 0)
if (leave) {
event.preventDefault()
}
})

注: これは BrowserView に対して発行されますが、尊重されません。これは、仕様に従って、BrowserView のライフサイクルを所有する BrowserWindow に関連付けないことを選択したためです。

イベント: 'render-process-gone'

返り値

レンダラープロセスが予期せず消えたときに発行されます。これは通常、クラッシュまたは強制終了されたためです。

イベント: 'unresponsive'

Web ページが応答しなくなったときに発行されます。

イベント: 'responsive'

応答しなくなった Web ページが再び応答するようになったときに発行されます。

イベント: 'plugin-crashed'

返り値

  • event イベント
  • name string
  • version string

プラグインプロセスがクラッシュしたときに発行されます。

イベント: 'destroyed'

webContents が破棄されたときに発行されます。

イベント: 'input-event'

返り値

入力イベントが WebContents に送信されたときに発行されます。詳細については、InputEvent を参照してください。

イベント: 'before-input-event'

返り値

ページで keydown および keyup イベントをディスパッチする前に発行されます。event.preventDefault を呼び出すと、ページの keydown/keyup イベントとメニューショートカットが阻止されます。

メニューショートカットのみを阻止するには、setIgnoreMenuShortcuts を使用します。

const { BrowserWindow } = require('electron')

const win = new BrowserWindow({ width: 800, height: 600 })

win.webContents.on('before-input-event', (event, input) => {
// For example, only enable application menu keyboard shortcuts when
// Ctrl/Cmd are down.
win.webContents.setIgnoreMenuShortcuts(!input.control && !input.meta)
})

イベント: 'enter-html-full-screen'

HTML API によってトリガーされたフルスクリーン状態にウィンドウが入ったときに発行されます。

イベント: 'leave-html-full-screen'

HTML API によってトリガーされたフルスクリーン状態からウィンドウが出たときに発行されます。

イベント: 'zoom-changed'

返り値

  • event イベント
  • zoomDirection string - in または out を指定できます。

ユーザーがマウスホイールを使用してズームレベルの変更を要求したときに発行されます。

イベント: 'blur'

WebContents がフォーカスを失ったときに発行されます。

イベント: 'focus'

WebContents がフォーカスを取得したときに発行されます。

macOS では、フォーカスがあるということは、WebContents がウィンドウのファーストレスポンダーであることを意味します。そのため、ウィンドウ間でフォーカスを切り替えても、各ウィンドウのファーストレスポンダーは変更されないため、WebContentsfocus および blur イベントはトリガーされません。

WebContentsfocus および blur イベントは、同じウィンドウ内の異なる WebContentsBrowserView の間のフォーカス変更を検出する場合にのみ使用する必要があります。

イベント: 'devtools-open-url'

返り値

  • event イベント
  • url string - クリックまたは選択されたリンクのURL。

DevToolsでリンクがクリックされたとき、またはそのコンテキストメニューでリンクに対して「新しいタブで開く」が選択されたときに発生します。

イベント: 'devtools-search-query'

返り値

  • event イベント
  • query string - 検索するテキスト。

コンテキストメニューでテキストに対して「検索」が選択されたときに発生します。

イベント: 'devtools-opened'

DevToolsが開かれたときに発生します。

イベント: 'devtools-closed'

DevToolsが閉じられたときに発生します。

イベント: 'devtools-focused'

DevToolsがフォーカスされた/開かれたときに発生します。

イベント: 'certificate-error'

返り値

  • event イベント
  • url string
  • error string - エラーコード。
  • certificate Certificate
  • callback Function
    • isTrusted boolean - 証明書が信頼できると見なせるかどうかを示します。
  • isMainFrame 真偽値

urlcertificateの検証に失敗したときに発生します。

使い方は、appcertificate-error イベントと同じです。

イベント: 'select-client-certificate'

返り値

  • event イベント
  • url URL
  • certificateList Certificate[]
  • callback Function
    • certificate Certificate - 指定されたリストの証明書である必要があります。

クライアント証明書が要求されたときに発生します。

使い方は、appselect-client-certificate イベントと同じです。

イベント: 'login'

返り値

  • event イベント
  • authenticationResponseDetails オブジェクト
    • url URL
  • authInfo オブジェクト
    • isProxy boolean
    • scheme string
    • host string
    • port Integer
    • realm string
  • callback Function
    • username string (オプション)
    • password string (オプション)

webContents がベーシック認証を行いたいときに発生します。

使い方は、applogin イベントと同じです。

イベント: 'found-in-page'

返り値

  • event イベント
  • result オブジェクト
    • requestId Integer
    • activeMatchOrdinal Integer - アクティブなマッチの位置。
    • matches Integer - マッチの数。
    • selectionArea Rectangle - 最初のマッチ領域の座標。
    • finalUpdate boolean

webContents.findInPage リクエストの結果が利用可能になったときに発生します。

イベント: 'media-started-playing'

メディアの再生が開始されたときに発生します。

イベント: 'media-paused'

メディアが一時停止または再生を完了したときに発生します。

イベント: 'audio-state-changed'

返り値

  • event Event<>
    • audible boolean - 1つ以上のフレームまたは子 webContents がオーディオを出力している場合はtrue。

メディアが可聴または不可聴になったときに発生します。

イベント: 'did-change-theme-color'

返り値

  • event イベント
  • color (string | null) - テーマカラーは '#rrggbb' の形式です。テーマカラーが設定されていない場合は null です。

ページのテーマカラーが変更されたときに発生します。これは通常、metaタグに出会ったためです。

<meta name='theme-color' content='#ff0000'>

イベント: 'update-target-url'

返り値

  • event イベント
  • url string

マウスがリンク上に移動したとき、またはキーボードがリンクにフォーカスを移動したときに発生します。

イベント: 'cursor-changed'

返り値

  • event イベント
  • type string
  • image NativeImage (オプション)
  • scale Float (オプション) - カスタムカーソルのスケーリングファクター。
  • size Size (オプション) - image のサイズ。
  • hotspot Point (オプション) - カスタムカーソルのホットスポットの座標。

カーソルのタイプが変更されたときに発生します。type パラメータは、pointercrosshairhandtextwaithelpe-resizen-resizene-resizenw-resizes-resizese-resizesw-resizew-resizens-resizeew-resizenesw-resizenwse-resizecol-resizerow-resizem-panningm-panning-verticalm-panning-horizontale-panningn-panningne-panningnw-pannings-panningse-panningsw-panningw-panningmovevertical-textcellcontext-menualiasprogressnodropcopynonenot-allowedzoom-inzoom-outgrabgrabbingcustomnulldrag-drop-nonedrag-drop-movedrag-drop-copydrag-drop-linkns-no-resizeew-no-resizenesw-no-resizenwse-no-resize、または default になります。

type パラメータが custom の場合、image パラメータは NativeImage のカスタムカーソル画像を持ち、scalesizehotspot はカスタムカーソルに関する追加情報を保持します。

イベント: 'context-menu'

返り値

  • event イベント
  • params オブジェクト
    • x Integer - x 座標。
    • y Integer - y 座標。
    • frame WebFrameMain - コンテキストメニューが呼び出されたフレーム。
    • linkURL string - コンテキストメニューが呼び出されたノードを囲むリンクのURL。
    • linkText string - リンクに関連付けられたテキスト。リンクの内容が画像の場合は空の文字列になる可能性があります。
    • pageURL string - コンテキストメニューが呼び出された最上位ページのURL。
    • frameURL string - コンテキストメニューが呼び出されたサブフレームのURL。
    • srcURL string - コンテキストメニューが呼び出された要素のソースURL。ソースURLを持つ要素は、画像、オーディオ、ビデオです。
    • mediaType string - コンテキストメニューが呼び出されたノードのタイプ。noneimageaudiovideocanvasfile、または plugin になります。
    • hasImageContents boolean - コンテキストメニューが呼び出された画像に空でない内容があるかどうか。
    • isEditable boolean - コンテキストが編集可能かどうか。
    • selectionText string - コンテキストメニューが呼び出された選択範囲のテキスト。
    • titleText string - コンテキストメニューが呼び出された選択範囲のタイトルテキスト。
    • altText string - コンテキストメニューが呼び出された選択範囲のaltテキスト。
    • suggestedFilename string - コンテキストメニューの「名前を付けてリンク先を保存」オプションを使用してファイルを保存するときに使用する推奨ファイル名。
    • selectionRect Rectangle - 選択範囲のドキュメント空間内の座標を表す矩形。
    • selectionStartOffset number - 選択テキストの開始位置。
    • referrerPolicy Referrer - メニューが呼び出されたフレームのリファラーポリシー。
    • misspelledWord string - カーソルの下にあるスペルミスの単語(存在する場合)。
    • dictionarySuggestions string[] - misspelledWord を置き換えるためにユーザーに表示する推奨単語の配列。スペルミスした単語があり、スペルチェッカーが有効になっている場合にのみ使用できます。
    • frameCharset string - メニューが呼び出されたフレームの文字エンコーディング。
    • formControlType string - コンテキストメニューが呼び出されたソース。可能な値は、nonebutton-buttonfield-setinput-buttoninput-checkboxinput-colorinput-dateinput-datetime-localinput-emailinput-fileinput-hiddeninput-imageinput-monthinput-numberinput-passwordinput-radioinput-rangeinput-resetinput-searchinput-submitinput-telephoneinput-textinput-timeinput-urlinput-weekoutputreset-buttonselect-listselect-listselect-multipleselect-onesubmit-button、および text-area です。
    • spellcheckEnabled boolean - コンテキストが編集可能である場合、スペルチェックが有効になっているかどうか。
    • menuSourceType string - コンテキストメニューを呼び出した入力ソース。nonemousekeyboardtouchtouchMenulongPresslongTaptouchHandlestylusadjustSelection、または adjustSelectionReset になります。
    • mediaFlags オブジェクト - コンテキストメニューが呼び出されたメディア要素のフラグ。
      • inError boolean - メディア要素がクラッシュしたかどうか。
      • isPaused boolean - メディア要素が一時停止されているかどうか。
      • isMuted boolean - メディア要素がミュートされているかどうか。
      • hasAudio boolean - メディア要素にオーディオがあるかどうか。
      • isLooping boolean - メディア要素がループしているかどうか。
      • isControlsVisible boolean - メディア要素のコントロールが表示されているかどうか。
      • canToggleControls boolean - メディア要素のコントロールが切り替え可能かどうか。
      • canPrint boolean - メディア要素を印刷できるかどうか。
      • canSave boolean - メディア要素をダウンロードできるかどうか。
      • canShowPictureInPicture boolean - メディア要素でピクチャーインピクチャーを表示できるかどうか。
      • isShowingPictureInPicture boolean - メディア要素が現在ピクチャーインピクチャーを表示しているかどうか。
      • canRotate boolean - メディア要素を回転できるかどうか。
      • canLoop boolean - メディア要素をループできるかどうか。
    • editFlags オブジェクト - これらのフラグは、レンダラーが対応するアクションを実行できると信じているかどうかを示します。
      • canUndo boolean - レンダラーが元に戻せると信じているかどうか。
      • canRedo boolean - レンダラーがやり直せると信じているかどうか。
      • canCut boolean - レンダラーが切り取りできると信じているかどうか。
      • canCopy boolean - レンダラーがコピーできると信じているかどうか。
      • canPaste boolean - レンダラーが貼り付けできると信じているかどうか。
      • canDelete boolean - レンダラーが削除できると信じているかどうか。
      • canSelectAll boolean - レンダラーがすべて選択できると信じているかどうか。
      • canEditRichly boolean - レンダラーがテキストをリッチ編集できると信じているかどうか。

処理する必要がある新しいコンテキストメニューがある場合に発生します。

イベント: 'select-bluetooth-device'

返り値

navigator.bluetooth.requestDevice の呼び出し時にBluetoothデバイスを選択する必要がある場合に発生します。callback は、選択するデバイスの deviceId を指定して呼び出す必要があります。callback に空の文字列を渡すと、リクエストがキャンセルされます。

このイベントのイベントリスナーが追加されていない場合、またはこのイベントを処理するときに event.preventDefault が呼び出されない場合は、最初に使用可能なデバイスが自動的に選択されます。

Bluetoothの性質上、navigator.bluetooth.requestDevice が呼び出されたときにデバイスをスキャンするには時間がかかる場合があり、callback がデバイスIDまたはリクエストをキャンセルする空の文字列で呼び出されるまで、select-bluetooth-device が複数回発生します。

main.js
const { app, BrowserWindow } = require('electron')

let win = null

app.whenReady().then(() => {
win = new BrowserWindow({ width: 800, height: 600 })
win.webContents.on('select-bluetooth-device', (event, deviceList, callback) => {
event.preventDefault()
const result = deviceList.find((device) => {
return device.deviceName === 'test'
})
if (!result) {
// The device wasn't found so we need to either wait longer (eg until the
// device is turned on) or cancel the request by calling the callback
// with an empty string.
callback('')
} else {
callback(result.deviceId)
}
})
})

イベント: 'paint'

返り値

  • event イベント
  • dirtyRect Rectangle
  • image NativeImage - フレーム全体の画像データ。

新しいフレームが生成されたときに発生します。バッファにはダーティ領域のみが渡されます。

const { BrowserWindow } = require('electron')

const win = new BrowserWindow({ webPreferences: { offscreen: true } })
win.webContents.on('paint', (event, dirty, image) => {
// updateBitmap(dirty, image.getBitmap())
})
win.loadURL('https://github.com')

イベント: 'devtools-reload-page'

devtoolsウィンドウがwebContentsに再読み込みを指示したときに発生します

イベント: 'will-attach-webview'

返り値

  • event イベント
  • webPreferences WebPreferences - ゲストページで使用されるWeb設定。このオブジェクトは、ゲストページの設定を調整するために変更できます。
  • params Record<string, string> - src URLなど、その他の <webview> パラメータ。このオブジェクトは、ゲストページのパラメータを調整するために変更できます。

<webview>のWebコンテンツがこのWebコンテンツにアタッチされるときに発生します。event.preventDefault() を呼び出すと、ゲストページが破棄されます。

このイベントを使用して、<webview>webContentswebPreferences をロード前に構成できます。また、<webview> 属性を使用して設定できない設定を設定する機能を提供します。

イベント: 'did-attach-webview'

返り値

  • event イベント
  • webContents WebContents - <webview>で使用されるゲストWebコンテンツ。

<webview> がこのWebコンテンツにアタッチされたときに発生します。

イベント: 'console-message'

返り値

  • event イベント
  • level Integer - ログレベル。0〜3。順番に verboseinfowarningerrorに対応します。
  • message string - 実際のコンソールメッセージ
  • line Integer - このコンソールメッセージをトリガーしたソースの行番号
  • sourceId string

関連付けられたウィンドウがコンソールメッセージをログに記録するときに発生します。

イベント: 'preload-error'

返り値

  • event イベント
  • preloadPath string
  • error Error

プリロードスクリプト preloadPath が未処理の例外 error をスローしたときに発生します。

イベント: 'ipc-message'

返り値

レンダラープロセスが ipcRenderer.send() を介して非同期メッセージを送信したときに発生します。

このWebContentsから特定のIPCメッセージに応答するための IpcMain のようなインターフェイスを提供するwebContents.ipcも参照してください。

イベント: 'ipc-message-sync'

返り値

レンダラープロセスが ipcRenderer.sendSync() を介して同期メッセージを送信したときに発生します。

このWebContentsから特定のIPCメッセージに応答するための IpcMain のようなインターフェイスを提供するwebContents.ipcも参照してください。

イベント: 'preferred-size-changed'

返り値

  • event イベント
  • preferredSize Size - スクロールを必要とせずに、ドキュメントのレイアウトを含めるために必要な最小サイズ。

WebContents の推奨サイズが変更されたときに発生します。

このイベントは、webPreferencesenablePreferredSizeModetrue に設定されている場合にのみ発生します。

イベント: 'frame-created'

返り値

  • event イベント
  • details オブジェクト
    • frame WebFrameMain

ページ内で mainFrame<iframe>、またはネストされた <iframe> がロードされたときに発生します。

インスタンスメソッド

contents.loadURL(url[, options])

  • url string
  • options オブジェクト(オプション)
    • httpReferrer (string | Referrer) (オプション) - HTTPリファラーのURL。
    • userAgent string (オプション) - リクエストの発信元のユーザーエージェント。
    • extraHeaders string (オプション) - "\n"で区切られた追加ヘッダー。
    • postData (UploadRawData | UploadFile)[] (オプション)
    • baseURLForDataURL string (オプション) - データURLによってロードされるファイルのベースURL(末尾のパス区切り記号付き)。これは、指定された url がデータURLであり、他のファイルをロードする必要がある場合にのみ必要です。

戻り値 Promise<void> - ページがロードを完了すると(did-finish-loadを参照)、promiseは解決され、ページがロードに失敗すると(did-fail-loadを参照)拒否されます。未処理の拒否エラーを回避するために、noop拒否ハンドラーがすでに追加されています。

ウィンドウに url をロードします。url には、http://file:// などのプロトコルプレフィックスが含まれている必要があります。ロードでHTTPキャッシュをバイパスする必要がある場合は、それを実現するために pragma ヘッダーを使用します。

const win = new BrowserWindow()
const options = { extraHeaders: 'pragma: no-cache\n' }
win.webContents.loadURL('https://github.com', options)

contents.loadFile(filePath[, options])

  • filePath string
  • options オブジェクト(オプション)
    • query Record<string, string> (オプション) - url.format() に渡されます。
    • search string (オプション) - url.format() に渡されます。
    • hash string (オプション) - url.format() に渡されます。

戻り値 Promise<void> - ページがロードを完了すると(did-finish-loadを参照)、promiseは解決され、ページがロードに失敗すると(did-fail-loadを参照)拒否されます。

指定されたファイルをウィンドウにロードします。filePath は、アプリケーションのルートを基準としたHTMLファイルへのパスである必要があります。たとえば、次のようなアプリケーション構造の場合

| root
| - package.json
| - src
| - main.js
| - index.html

次のようなコードが必要です

const win = new BrowserWindow()
win.loadFile('src/index.html')

contents.downloadURL(url[, options])

  • url string
  • options オブジェクト(オプション)
    • headers Record<string, string> (オプション) - HTTPリクエストヘッダー。

ナビゲーションせずに、url のリソースのダウンロードを開始します。sessionwill-download イベントがトリガーされます。

contents.getURL()

戻り値 string - 現在のWebページのURL。

const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com').then(() => {
const currentURL = win.webContents.getURL()
console.log(currentURL)
})

contents.getTitle()

戻り値 string - 現在のWebページのタイトル。

contents.isDestroyed()

戻り値 boolean - Webページが破棄されたかどうか。

contents.close([opts])

  • opts オブジェクト(オプション)
    • waitForBeforeUnload boolean - trueの場合、ページを閉じる前に beforeunload イベントを発生させます。ページがアンロードを防止した場合、WebContentsは閉じられません。ページがアンロードの防止を要求すると、will-prevent-unload が発生します。

Webコンテンツが window.close() を呼び出したかのように、ページを閉じます。

ページが正常に閉じられた場合(つまり、アンロードがページによって防止されない場合、または waitForBeforeUnload がfalseまたは未指定の場合)、WebContentsは破棄され、使用できなくなります。destroyed イベントが発生します。

contents.focus()

Webページにフォーカスを設定します。

contents.isFocused()

戻り値 boolean - Webページにフォーカスが設定されているかどうか。

contents.isLoading()

booleanを返します - ウェブページがまだリソースを読み込んでいるかどうか。

contents.isLoadingMainFrame()

booleanを返します - メインフレーム(およびその中のiframeやフレームだけではなく)がまだ読み込み中かどうか。

contents.isWaitingForResponse()

booleanを返します - ウェブページがページのメインリソースからの最初の応答を待機しているかどうか。

contents.stop()

保留中のナビゲーションを停止します。

contents.reload()

現在のウェブページをリロードします。

contents.reloadIgnoringCache()

現在のページをリロードし、キャッシュを無視します。

contents.canGoBack() 非推奨

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

booleanを返します - ブラウザが前のウェブページに戻れるかどうか。

非推奨: 新しいcontents.navigationHistory.canGoBack APIを使用する必要があります。

contents.canGoForward() 非推奨

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

booleanを返します - ブラウザが次のウェブページに進めるかどうか。

非推奨: 新しいcontents.navigationHistory.canGoForward APIを使用する必要があります。

contents.canGoToOffset(offset) 非推奨

履歴
バージョン変更点
>=32.0.0
API DEPRECATED
  • offset 整数

booleanを返します - ウェブページがoffsetに移動できるかどうか。

非推奨: 新しいcontents.navigationHistory.canGoToOffset APIを使用する必要があります。

contents.clearHistory() 非推奨

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

ナビゲーション履歴をクリアします。

非推奨: 新しいcontents.navigationHistory.clear APIを使用する必要があります。

contents.goBack() 非推奨

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

ブラウザを前のウェブページに戻します。

非推奨: 新しいcontents.navigationHistory.goBack APIを使用する必要があります。

contents.goForward() 非推奨

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

ブラウザを次のウェブページに進めます。

非推奨: 新しいcontents.navigationHistory.goForward APIを使用する必要があります。

contents.goToIndex(index) 非推奨

履歴
バージョン変更点
>=32.0.0
API DEPRECATED
  • index 整数

指定された絶対ウェブページインデックスにブラウザをナビゲートします。

非推奨: 新しいcontents.navigationHistory.goToIndex APIを使用する必要があります。

contents.goToOffset(offset) 非推奨

履歴
バージョン変更点
>=32.0.0
API DEPRECATED
  • offset 整数

「現在のエントリ」から指定されたオフセットにナビゲートします。

非推奨: 新しいcontents.navigationHistory.goToOffset APIを使用する必要があります。

contents.isCrashed()

booleanを返します - レンダラープロセスがクラッシュしたかどうか。

contents.forcefullyCrashRenderer()

現在このwebContentsをホストしているレンダラープロセスを強制的に終了させます。これにより、reason=killed || reason=crashedrender-process-goneイベントが発行されます。一部のwebContentsはレンダラープロセスを共有するため、このメソッドを呼び出すと、他のwebContentsのホストプロセスもクラッシュする可能性があることに注意してください。

このメソッドを呼び出した直後にreload()を呼び出すと、強制的に新しいプロセスでリロードが行われます。これは、プロセスが不安定または使用できない場合、例えばunresponsiveイベントから回復するために使用する必要があります。

const win = new BrowserWindow()

win.webContents.on('unresponsive', async () => {
const { response } = await dialog.showMessageBox({
message: 'App X has become unresponsive',
title: 'Do you want to try forcefully reloading the app?',
buttons: ['OK', 'Cancel'],
cancelId: 1
})
if (response === 0) {
win.webContents.forcefullyCrashRenderer()
win.webContents.reload()
}
})

contents.setUserAgent(userAgent)

  • userAgent 文字列

このウェブページのユーザーエージェントを上書きします。

contents.getUserAgent()

stringを返します - このウェブページのユーザーエージェント。

contents.insertCSS(css[, options])

  • css 文字列
  • options オブジェクト(オプション)
    • cssOrigin 文字列(オプション) - 'user'または'author'を指定できます。挿入されたスタイルシートのカスケードオリジンを設定します。デフォルトは'author'です。

Promise<string>を返します - 挿入されたCSSのキーで解決されるPromise。後でcontents.removeInsertedCSS(key)を使用してCSSを削除できます。

現在のウェブページにCSSを挿入し、挿入されたスタイルシートの一意のキーを返します。

const win = new BrowserWindow()
win.webContents.on('did-finish-load', () => {
win.webContents.insertCSS('html, body { background-color: #f00; }')
})

contents.removeInsertedCSS(key)

  • key 文字列

Promise<void>を返します - 削除が成功した場合に解決します。

現在のウェブページから挿入されたCSSを削除します。スタイルシートは、contents.insertCSS(css)から返されるキーによって識別されます。

const win = new BrowserWindow()

win.webContents.on('did-finish-load', async () => {
const key = await win.webContents.insertCSS('html, body { background-color: #f00; }')
win.webContents.removeInsertedCSS(key)
})

contents.executeJavaScript(code[, userGesture])

  • code 文字列
  • userGesture boolean(オプション) - デフォルトはfalseです。

Promise<any>を返します - 実行されたコードの結果で解決されるPromise。または、コードの結果が拒否されたPromiseの場合は拒否されます。

ページ内でcodeを評価します。

ブラウザウィンドウでは、requestFullScreenなどの一部のHTML APIは、ユーザーからのジェスチャによってのみ呼び出すことができます。userGesturetrueに設定すると、この制限が解除されます。

コードの実行は、ウェブページの読み込みが停止するまで中断されます。

const win = new BrowserWindow()

win.webContents.executeJavaScript('fetch("https://jsonplaceholder.typicode.com/users/1").then(resp => resp.json())', true)
.then((result) => {
console.log(result) // Will be the JSON object from the fetch call
})

contents.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture])

  • worldId 整数 - JavaScriptを実行するワールドのID。0はデフォルトのワールドで、999はElectronのcontextIsolation機能で使用されるワールドです。ここに任意の整数を指定できます。
  • scripts WebSource[]
  • userGesture boolean(オプション) - デフォルトはfalseです。

Promise<any>を返します - 実行されたコードの結果で解決されるPromise。または、コードの結果が拒否されたPromiseの場合は拒否されます。

executeJavaScriptと同様に機能しますが、分離されたコンテキストでscriptsを評価します。

contents.setIgnoreMenuShortcuts(ignore)

  • ignore boolean

このウェブコンテンツにフォーカスがある間、アプリケーションメニューのショートカットを無視します。

contents.setWindowOpenHandler(handler)

  • handler Function<WindowOpenHandlerResponse>

    • details オブジェクト
      • url 文字列 - window.open()に渡されるURLの解決済みバージョン。例:window.open('foo')でウィンドウを開くと、https://the-origin/the/current/path/fooのようなものが生成されます。
      • frameName 文字列 - window.open()で提供されるウィンドウの名前
      • features 文字列 - window.open()に提供されるウィンドウ機能のコンマ区切りリスト。
      • disposition string - defaultforeground-tabbackground-tabnew-window、または other を指定できます。
      • referrer Referrer - 新しいウィンドウに渡されるリファラーです。リファラーポリシーによっては、Referer ヘッダーが送信される場合と送信されない場合があります。
      • postBody PostBody (オプション) - 新しいウィンドウに送信されるポストデータと、設定される適切なヘッダーです。ポストデータを送信しない場合は、値は null になります。ウィンドウが target=_blank を設定したフォームによって作成されている場合にのみ定義されます。

    WindowOpenHandlerResponseを返します - { action: 'deny' }に設定すると、新しいウィンドウの作成がキャンセルされます。{ action: 'allow' }は、新しいウィンドウの作成を許可します。null、undefined、または認識された「action」値のないオブジェクトなど、認識されない値を返すと、コンソールエラーが発生し、{action: 'deny'}を返すのと同じ効果があります。

レンダラーによって新しいウィンドウが要求される前に呼び出されます。例えば、window.open()target="_blank"を持つリンク、リンクのshift+クリック、または<form target="_blank">を使用したフォームの送信などです。詳細およびdid-create-windowと組み合わせて使用する方法については、window.open()を参照してください。

新しいBrowserWindowの作成プロセスをカスタマイズして、代わりにメインウィンドウにアタッチされたBrowserViewにする方法を示す例

const { BrowserView, BrowserWindow } = require('electron')

const mainWindow = new BrowserWindow()

mainWindow.webContents.setWindowOpenHandler((details) => {
return {
action: 'allow',
createWindow: (options) => {
const browserView = new BrowserView(options)
mainWindow.addBrowserView(browserView)
browserView.setBounds({ x: 0, y: 0, width: 640, height: 480 })
return browserView.webContents
}
}
})

contents.setAudioMuted(muted)

  • muted boolean

現在のウェブページのオーディオをミュートします。

contents.isAudioMuted()

booleanを返します - このページがミュートされているかどうか。

contents.isCurrentlyAudible()

booleanを返します - オーディオが現在再生されているかどうか。

contents.setZoomFactor(factor)

  • factor Double - ズームファクター。デフォルトは1.0です。

ズームファクターを指定されたファクターに変更します。ズームファクターはズームパーセントを100で割ったものなので、300% = 3.0です。

ファクターは0.0より大きくなければなりません。

contents.getZoomFactor()

numberを返します - 現在のズームファクター。

contents.setZoomLevel(level)

  • level number - ズームレベル。

ズームレベルを指定されたレベルに変更します。元のサイズは0で、それより上または下の増分は、それぞれ元のサイズの300%および50%のデフォルト制限まで、20%大きくまたは小さくズームすることを表します。この計算式はscale := 1.2 ^ levelです。

注意: Chromiumレベルでのズームポリシーは同一オリジンであり、特定のドメインのズームレベルは、同じドメインを持つすべてのウィンドウインスタンスに伝播します。ウィンドウのURLを区別することで、ウィンドウごとにズームを機能させることができます。

contents.getZoomLevel()

numberを返します - 現在のズームレベル。

contents.setVisualZoomLevelLimits(minimumLevel, maximumLevel)

  • minimumLevel number
  • maximumLevel number

Promise<void>を返します

ピンチ操作によるズームの最大レベルと最小レベルを設定します。

注意: ビジュアルズームはElectronではデフォルトで無効になっています。再度有効にするには、次を呼び出してください。

const win = new BrowserWindow()
win.webContents.setVisualZoomLevelLimits(1, 3)

contents.undo()

Webページで編集コマンドundoを実行します。

contents.redo()

Webページで編集コマンドredoを実行します。

contents.cut()

Webページで編集コマンドcutを実行します。

contents.copy()

Webページで編集コマンドcopyを実行します。

contents.centerSelection()

Webページ内の現在のテキスト選択を中央に表示します。

contents.copyImageAt(x, y)

  • x Integer
  • y Integer

指定された位置にある画像をクリップボードにコピーします。

contents.paste()

Webページで編集コマンドpasteを実行します。

contents.pasteAndMatchStyle()

Webページで編集コマンドpasteAndMatchStyleを実行します。

contents.delete()

Webページで編集コマンドdeleteを実行します。

contents.selectAll()

Webページで編集コマンドselectAllを実行します。

contents.unselect()

Webページで編集コマンドunselectを実行します。

contents.scrollToTop()

現在のwebContentsの一番上までスクロールします。

contents.scrollToBottom()

現在のwebContentsの一番下までスクロールします。

contents.adjustSelection(options)

  • options Object
    • start Number (optional) - 現在の選択の開始インデックスをシフトする量。
    • end Number (optional) - 現在の選択の終了インデックスをシフトする量。

フォーカスされたフレーム内の現在のテキスト選択の開始点と終了点を、指定された量だけ調整します。負の量を指定すると、選択範囲がドキュメントの先頭に移動し、正の量を指定すると、ドキュメントの末尾に移動します。

const win = new BrowserWindow()

// Adjusts the beginning of the selection 1 letter forward,
// and the end of the selection 5 letters forward.
win.webContents.adjustSelection({ start: 1, end: 5 })

// Adjusts the beginning of the selection 2 letters forward,
// and the end of the selection 3 letters backward.
win.webContents.adjustSelection({ start: 2, end: -3 })

win.webContents.adjustSelection({ start: 1, end: 5 })を呼び出す場合

変更前

Image Before Text Selection Adjustment

変更後

Image After Text Selection Adjustment

contents.replace(text)

  • text string

Webページで編集コマンドreplaceを実行します。

contents.replaceMisspelling(text)

  • text string

Webページで編集コマンドreplaceMisspellingを実行します。

contents.insertText(text)

  • text string

Promise<void>を返します

フォーカスされた要素にtextを挿入します。

contents.findInPage(text[, options])

  • text string - 検索するコンテンツ。空であってはなりません。
  • options オブジェクト(オプション)
    • forward boolean (optional) - 前方または後方どちらに検索するか。デフォルトはtrueです。
    • findNext boolean (optional) - このリクエストで新しいテキスト検索セッションを開始するかどうか。最初の要求ではtrue、後続の要求ではfalseである必要があります。デフォルトはfalseです。
    • matchCase boolean (optional) - 検索で大文字と小文字を区別するかどうか。デフォルトはfalseです。

Integerを返します - リクエストに使用されるリクエストID。

Webページ内のtextに一致するすべてを検索するリクエストを開始します。リクエストの結果は、found-in-pageイベントをサブスクライブすることで取得できます。

contents.stopFindInPage(action)

  • action string - webContents.findInPageリクエストの終了時に実行するアクションを指定します。
    • clearSelection - 選択をクリアします。
    • keepSelection - 選択を通常の選択に変換します。
    • activateSelection - 選択ノードをフォーカスしてクリックします。

指定されたactionwebContentsfindInPageリクエストを停止します。

const win = new BrowserWindow()
win.webContents.on('found-in-page', (event, result) => {
if (result.finalUpdate) win.webContents.stopFindInPage('clearSelection')
})

const requestId = win.webContents.findInPage('api')
console.log(requestId)

contents.capturePage([rect, opts])

  • rect Rectangle (optional) - キャプチャするページの領域。
  • opts オブジェクト(オプション)
    • stayHidden boolean (optional) - ページを可視化せずに非表示のままにします。デフォルトはfalseです。
    • stayAwake boolean (optional) - システムをスリープさせずに、システムを起動状態に保ちます。デフォルトはfalseです。

Promise<NativeImage>を返します - NativeImageで解決されます

rect内のページのsnapshotをキャプチャします。rectを省略すると、表示されているページ全体がキャプチャされます。ページは、ブラウザウィンドウが非表示で、キャプチャカウントがゼロでない場合に表示されると見なされます。ページを非表示のままにする場合は、stayHiddenをtrueに設定する必要があります。

contents.isBeingCaptured()

booleanを返します - このページがキャプチャされているかどうか。キャプチャカウントが0より大きい場合にtrueを返します。

contents.getPrintersAsync()

システムプリンターリストを取得します。

Promise<PrinterInfo[]>を返します - PrinterInfo[]で解決されます

contents.print([options], [callback])

  • options オブジェクト(オプション)
    • silent boolean (optional) - 印刷設定をユーザーに尋ねません。デフォルトはfalseです。
    • printBackground boolean (optional) - Webページの背景色と画像を印刷します。デフォルトはfalseです。
    • deviceName string (optional) - 使用するプリンターデバイス名を設定します。「Brother_QL_820NWB」のようにシステムで定義された名前を使用する必要があり、「Brother QL-820NWB」のような「フレンドリー」な名前を使用することはできません。
    • color boolean (optional) - 印刷されるWebページをカラーにするかグレースケールにするかを設定します。デフォルトはtrueです。
    • margins Object (optional)
      • marginType string (optional) - defaultnoneprintableArea、またはcustomを指定できます。customを選択した場合は、topbottomleft、およびrightも指定する必要があります。
      • top number (optional) - 印刷されたWebページの上のマージン(ピクセル単位)。
      • bottom number (optional) - 印刷されたWebページの下のマージン(ピクセル単位)。
      • left number (optional) - 印刷されたWebページの左のマージン(ピクセル単位)。
      • right number (optional) - 印刷されたWebページの右のマージン(ピクセル単位)。
    • landscape boolean (optional) - Webページを横向きで印刷するかどうか。デフォルトはfalseです。
    • scaleFactor number (optional) - Webページの拡大縮小率。
    • pagesPerSheet number (optional) - 1枚の用紙に印刷するページ数。
    • collate boolean (optional) - Webページを照合するかどうか。
    • copies number (optional) - 印刷するWebページのコピー数。
    • pageRanges Object[] (optional) - 印刷するページ範囲。macOSでは、1つの範囲のみが有効になります。
      • from number - 印刷する最初のページのインデックス(0ベース)。
      • to number - 印刷する最後のページのインデックス(両端を含む)(0ベース)。
    • duplexMode string (オプション) - 印刷されるウェブページの両面印刷モードを設定します。simplex, shortEdge, longEdge が指定可能です。
    • dpi Record<string, number> (オプション)
      • horizontal number (オプション) - 水平方向の DPI。
      • vertical number (オプション) - 垂直方向の DPI。
    • header string (オプション) - ページヘッダーとして印刷される文字列。
    • footer string (オプション) - ページフッターとして印刷される文字列。
    • pageSize string | Size (オプション) - 印刷ドキュメントのページサイズを指定します。A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid、または heightwidth を含むオブジェクトを指定できます。
  • callback Function (オプション)
    • success boolean - 印刷呼び出しが成功したかどうかを示します。
    • failureReason string - 印刷に失敗した場合にコールバックされるエラーの説明。

カスタムの pageSize が渡された場合、Chromium は width_micronsheight_microns のプラットフォーム固有の最小値を検証しようとします。幅と高さは両方とも最小 353 ミクロンである必要がありますが、一部のオペレーティングシステムではより大きくなる場合があります。

ウィンドウのウェブページを印刷します。silenttrue に設定されている場合、deviceName が空であれば、Electron はシステムのデフォルトプリンターとデフォルトの印刷設定を選択します。

新しいページに強制的に印刷するには、page-break-before: always; CSS スタイルを使用します。

使用例

const win = new BrowserWindow()
const options = {
silent: true,
deviceName: 'My-Printer',
pageRanges: [{
from: 0,
to: 1
}]
}
win.webContents.print(options, (success, errorType) => {
if (!success) console.log(errorType)
})

contents.printToPDF(options)

  • options Object
    • landscape boolean (オプション) - 用紙の向き。横向きの場合は true、縦向きの場合は false。デフォルトは false です。
    • displayHeaderFooter boolean (オプション) - ヘッダーとフッターを表示するかどうか。デフォルトは false です。
    • printBackground boolean (オプション) - 背景グラフィックを印刷するかどうか。デフォルトは false です。
    • scale number(オプション) - ウェブページのレンダリングのスケール。デフォルトは 1 です。
    • pageSize string | Size (オプション) - 生成された PDF のページサイズを指定します。A0, A1, A2, A3, A4, A5, A6, Legal, Letter, Tabloid, Ledger、またはインチ単位の heightwidth を含むオブジェクトを指定できます。デフォルトは Letter です。
    • margins Object (optional)
      • top number (オプション) - 上マージン(インチ単位)。デフォルトは 1cm (約 0.4 インチ) です。
      • bottom number (オプション) - 下マージン(インチ単位)。デフォルトは 1cm (約 0.4 インチ) です。
      • left number (オプション) - 左マージン(インチ単位)。デフォルトは 1cm (約 0.4 インチ) です。
      • right number (オプション) - 右マージン(インチ単位)。デフォルトは 1cm (約 0.4 インチ) です。
    • pageRanges string (オプション) - 印刷するページ範囲(例: '1-5, 8, 11-13')。デフォルトは空文字列で、すべてのページを印刷することを意味します。
    • headerTemplate string (オプション) - 印刷ヘッダーの HTML テンプレート。印刷値を挿入するために使用される次のクラスを持つ有効な HTML マークアップである必要があります: date (フォーマットされた印刷日付)、title (ドキュメントタイトル)、url (ドキュメントの場所)、pageNumber (現在のページ番号)、totalPages (ドキュメント内の総ページ数)。たとえば、<span class=title></span> はタイトルを含むスパンを生成します。
    • footerTemplate string (オプション) - 印刷フッターの HTML テンプレート。headerTemplate と同じ形式を使用する必要があります。
    • preferCSSPageSize boolean (オプション) - CSS で定義されたページサイズを優先するかどうか。デフォルトは false で、この場合、コンテンツは用紙サイズに合わせて拡大縮小されます。
    • generateTaggedPDF boolean (オプション) 実験的 - タグ付き (アクセシブル) PDF を生成するかどうか。デフォルトは false です。このプロパティは実験的なため、生成された PDF は PDF/UA および WCAG 標準に完全には準拠していない可能性があります。
    • generateDocumentOutline boolean (オプション) 実験的 - コンテンツヘッダーから PDF ドキュメントアウトラインを生成するかどうか。デフォルトは false です。

Returns Promise<Buffer> - 生成された PDF データで解決します。

ウィンドウのウェブページを PDF として印刷します。

ウェブページで @page CSS アットルールが使用されている場合、landscape は無視されます。

webContents.printToPDF の例

const { app, BrowserWindow } = require('electron')
const fs = require('node:fs')
const path = require('node:path')
const os = require('node:os')

app.whenReady().then(() => {
const win = new BrowserWindow()
win.loadURL('https://github.com')

win.webContents.on('did-finish-load', () => {
// Use default printing options
const pdfPath = path.join(os.homedir(), 'Desktop', 'temp.pdf')
win.webContents.printToPDF({}).then(data => {
fs.writeFile(pdfPath, data, (error) => {
if (error) throw error
console.log(`Wrote PDF successfully to ${pdfPath}`)
})
}).catch(error => {
console.log(`Failed to write PDF to ${pdfPath}: `, error)
})
})
})

詳細については、Page.printToPdf を参照してください。

contents.addWorkSpace(path)

  • path string

指定されたパスを DevTools ワークスペースに追加します。DevTools の作成後に使用する必要があります。

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
win.webContents.on('devtools-opened', () => {
win.webContents.addWorkSpace(__dirname)
})

contents.removeWorkSpace(path)

  • path string

指定されたパスを DevTools ワークスペースから削除します。

contents.setDevToolsWebContents(devToolsWebContents)

  • devToolsWebContents WebContents

DevTools を表示するターゲットの WebContents として devToolsWebContents を使用します。

devToolsWebContents はナビゲーションを実行していない必要があり、呼び出し後他の目的で使用しないでください。

デフォルトでは、Electron はネイティブビューで内部 WebContents を作成して DevTools を管理しますが、開発者はこれをほとんど制御できません。setDevToolsWebContents メソッドを使用すると、開発者は BrowserWindowBrowserView、および <webview> タグを含め、任意の WebContents を使用してその中に DevTools を表示できます。

DevTools を閉じても devToolsWebContents は破棄されないことに注意してください。devToolsWebContents を破棄するのは呼び出し側の責任です。

<webview> タグで DevTools を表示する例

<html>
<head>
<style type="text/css">
* { margin: 0; }
#browser { height: 70%; }
#devtools { height: 30%; }
</style>
</head>
<body>
<webview id="browser" src="https://github.com"></webview>
<webview id="devtools" src="about:blank"></webview>
<script>
const { ipcRenderer } = require('electron')
const emittedOnce = (element, eventName) => new Promise(resolve => {
element.addEventListener(eventName, event => resolve(event), { once: true })
})
const browserView = document.getElementById('browser')
const devtoolsView = document.getElementById('devtools')
const browserReady = emittedOnce(browserView, 'dom-ready')
const devtoolsReady = emittedOnce(devtoolsView, 'dom-ready')
Promise.all([browserReady, devtoolsReady]).then(() => {
const targetId = browserView.getWebContentsId()
const devtoolsId = devtoolsView.getWebContentsId()
ipcRenderer.send('open-devtools', targetId, devtoolsId)
})
</script>
</body>
</html>
// Main process
const { ipcMain, webContents } = require('electron')
ipcMain.on('open-devtools', (event, targetContentsId, devtoolsContentsId) => {
const target = webContents.fromId(targetContentsId)
const devtools = webContents.fromId(devtoolsContentsId)
target.setDevToolsWebContents(devtools)
target.openDevTools()
})

BrowserWindow で DevTools を表示する例

main.js
const { app, BrowserWindow } = require('electron')

let win = null
let devtools = null

app.whenReady().then(() => {
win = new BrowserWindow()
devtools = new BrowserWindow()
win.loadURL('https://github.com')
win.webContents.setDevToolsWebContents(devtools.webContents)
win.webContents.openDevTools({ mode: 'detach' })
})

contents.openDevTools([options])

  • options オブジェクト(オプション)
    • mode string - 指定されたドック状態で DevTools を開きます。left, right, bottom, undocked, detach が指定可能です。デフォルトは最後に使用したドック状態です。undocked モードでは、ドックに戻すことが可能です。detach モードでは、ドックに戻すことはできません。
    • activate boolean (オプション) - 開いた DevTools ウィンドウを前面に表示するかどうか。デフォルトは true です。
    • title string (オプション) - DevTools ウィンドウのタイトル (undocked または detach モードでのみ)。

DevTools を開きます。

contents<webview> タグの場合、mode はデフォルトで detach になります。空の mode を明示的に渡すと、最後に使用したドック状態を強制的に使用できます。

Windows では、Windows コントロールオーバーレイが有効になっている場合、DevTools は mode: 'detach' で開きます。

contents.closeDevTools()

DevTools を閉じます。

contents.isDevToolsOpened()

Returns boolean - DevTools が開いているかどうか。

contents.isDevToolsFocused()

Returns boolean - DevTools ビューにフォーカスがあるかどうか。

contents.getDevToolsTitle()

Returns string - DevTools ウィンドウの現在のタイトル。これは DevTools が undocked または detach モードで開いている場合にのみ表示されます。

contents.setDevToolsTitle(title)

  • title 文字列

DevTools ウィンドウのタイトルを title に変更します。これは DevTools が undocked または detach モードで開いている場合にのみ表示されます。

contents.toggleDevTools()

開発者ツールを切り替えます。

contents.inspectElement(x, y)

  • x Integer
  • y Integer

位置 (x, y) の要素の検査を開始します。

contents.inspectSharedWorker()

共有ワーカーコンテキストの開発者ツールを開きます。

contents.inspectSharedWorkerById(workerId)

  • workerId string

ID に基づいて共有ワーカーを検査します。

contents.getAllSharedWorkers()

Returns SharedWorkerInfo[] - すべての共有ワーカーに関する情報。

contents.inspectServiceWorker()

サービスワーカーコンテキストの開発者ツールを開きます。

contents.send(channel, ...args)

  • channel string
  • ...args any[]

引数とともに channel を介して、レンダラープロセスに非同期メッセージを送信します。引数は、構造化クローンアルゴリズムと、postMessage と同様にシリアライズされるため、プロトタイプチェーンは含まれません。関数、Promise、Symbol、WeakMap、または WeakSet を送信すると、例外がスローされます。

警告

DOM オブジェクトや特別な Electron オブジェクトなど、非標準の JavaScript 型を送信すると、例外がスローされます。

詳細については、Electron の IPC ガイドを参照してください。

contents.sendToFrame(frameId, channel, ...args)

  • frameId Integer | [number, number] - 送信するフレームの ID。または、フレームがメインフレームとは異なるプロセスにある場合は、[processId, frameId] のペア。
  • channel string
  • ...args any[]

channel を介して、レンダラープロセスの特定のフレームに引数とともに非同期メッセージを送信します。引数は、構造化クローンアルゴリズムを使用してシリアライズされます。postMessage と同様に、プロトタイプチェーンは含まれません。関数、Promise、シンボル、WeakMap、または WeakSet を送信すると、例外がスローされます。

注意: DOMオブジェクトや特別なElectronオブジェクトなど、非標準のJavaScript型を送信すると、例外がスローされます。

レンダラープロセスは、ipcRenderer モジュールを使用して channel をリッスンすることでメッセージを処理できます。

特定のレンダラーコンテキストの frameId を取得するには、webFrame.routingId の値を使用する必要があります。例:

// In a renderer process
console.log('My frameId is:', require('electron').webFrame.routingId)

メインプロセスで受信するすべてのIPCメッセージから frameId を読み取ることもできます。

// In the main process
ipcMain.on('ping', (event) => {
console.info('Message came from frameId:', event.frameId)
})

contents.postMessage(channel, message, [transfer])

  • channel string
  • message any
  • transfer MessagePortMain[] (オプション)

オプションで、0個以上のMessagePortMainオブジェクトの所有権を移転しながら、メッセージをレンダラープロセスに送信します。

移転されたMessagePortMainオブジェクトは、発生したイベントのportsプロパティにアクセスすることで、レンダラープロセスで利用できます。レンダラーに到着すると、ネイティブDOMのMessagePortオブジェクトになります。

例:

// Main process
const win = new BrowserWindow()
const { port1, port2 } = new MessageChannelMain()
win.webContents.postMessage('port', { message: 'hello' }, [port1])

// Renderer process
ipcRenderer.on('port', (e, msg) => {
const [port] = e.ports
// ...
})

contents.enableDeviceEmulation(parameters)

  • parameters Object
    • screenPosition string - エミュレートする画面タイプを指定します(デフォルト:desktop)。
      • desktop - デスクトップ画面タイプ。
      • mobile - モバイル画面タイプ。
    • screenSize Size - エミュレートされた画面サイズを設定します(screenPosition == mobile)。
    • viewPosition Point - 画面上のビューの位置を設定します(screenPosition == mobile)(デフォルト:{ x: 0, y: 0 })。
    • deviceScaleFactor Integer - デバイススケールファクターを設定します(ゼロの場合は、元のデバイススケールファクターがデフォルトになります)(デフォルト:0)。
    • viewSize Size - エミュレートされたビューサイズを設定します(空の場合はオーバーライドなし)。
    • scale Float - 利用可能なスペース内でのエミュレートされたビューのスケール(ビューモードに合わせない場合)(デフォルト:1)。

指定されたパラメータでデバイスエミュレーションを有効にします。

contents.disableDeviceEmulation()

webContents.enableDeviceEmulation で有効になっているデバイスエミュレーションを無効にします。

contents.sendInputEvent(inputEvent)

ページに入力eventを送信します。注意: sendInputEvent()を機能させるには、コンテンツを含むBrowserWindowがフォーカスされている必要があります。

contents.beginFrameSubscription([onlyDirty ,]callback)

  • onlyDirty boolean (オプション) - デフォルトはfalse
  • callback Function

プレゼンテーションイベントとキャプチャされたフレームのサブスクリプションを開始します。プレゼンテーションイベントが発生すると、callbackcallback(image, dirtyRect) で呼び出されます。

image は、キャプチャされたフレームを格納するNativeImageのインスタンスです。

dirtyRect は、ページのどの部分が再描画されたかを記述する x, y, width, height プロパティを持つオブジェクトです。onlyDirtytrue に設定されている場合、image には再描画された領域のみが含まれます。onlyDirty のデフォルトは false です。

contents.endFrameSubscription()

フレームプレゼンテーションイベントのサブスクリプションを終了します。

contents.startDrag(item)

  • item Object
    • file string - ドラッグ中のファイルのパス。
    • files string[] (オプション) - ドラッグ中のファイルのパス。(filesfileフィールドを上書きします)
    • icon NativeImage | string - macOSでは、画像は空でない必要があります。

現在のドラッグアンドドロップ操作のドラッグアイテムとしてitemを設定します。fileはドラッグするファイルの絶対パスであり、iconはドラッグ時にカーソルの下に表示される画像です。

contents.savePage(fullPath, saveType)

  • fullPath string - 絶対ファイルパス。
  • saveType string - 保存タイプを指定します。
    • HTMLOnly - ページのHTMLのみを保存します。
    • HTMLComplete - 完全なHTMLページを保存します。
    • MHTML - 完全なHTMLページをMHTMLとして保存します。

Promise<void> を返します - ページが保存された場合に解決されます。

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()

win.loadURL('https://github.com')

win.webContents.on('did-finish-load', async () => {
win.webContents.savePage('/tmp/test.html', 'HTMLComplete').then(() => {
console.log('Page was saved successfully.')
}).catch(err => {
console.log(err)
})
})

contents.showDefinitionForSelection() macOS

ページで選択された単語を検索するポップアップ辞書を表示します。

contents.isOffscreen()

boolean を返します - *オフスクリーンレンダリング*が有効かどうかを示します。

contents.startPainting()

*オフスクリーンレンダリング*が有効で、描画していない場合は、描画を開始します。

contents.stopPainting()

*オフスクリーンレンダリング*が有効で、描画中の場合は、描画を停止します。

contents.isPainting()

boolean を返します - *オフスクリーンレンダリング*が有効な場合、現在描画中かどうかを返します。

contents.setFrameRate(fps)

  • fps Integer

*オフスクリーンレンダリング*が有効な場合、フレームレートを指定された数値に設定します。1から240までの値のみが受け入れられます。

contents.getFrameRate()

Integer を返します - *オフスクリーンレンダリング*が有効な場合、現在のフレームレートを返します。

contents.invalidate()

このWebコンテンツがあるウィンドウの完全な再描画をスケジュールします。

*オフスクリーンレンダリング*が有効な場合、フレームを無効にし、'paint' イベントを介して新しいフレームを生成します。

contents.getWebRTCIPHandlingPolicy()

string を返します - WebRTC IP ハンドリングポリシーを返します。

contents.setWebRTCIPHandlingPolicy(policy)

  • policy string - WebRTC IP ハンドリングポリシーを指定します。
    • default - ユーザーのパブリックIPおよびローカルIPを公開します。これがデフォルトの動作です。このポリシーを使用する場合、WebRTCはすべてのインターフェースを列挙し、それらをバインドしてパブリックインターフェースを検出する権利があります。
    • default_public_interface_only - ユーザーのパブリックIPを公開しますが、ユーザーのローカルIPは公開しません。このポリシーを使用する場合、WebRTCはhttpで使用されるデフォルトルートのみを使用する必要があります。これにより、ローカルアドレスは公開されません。
    • default_public_and_private_interfaces - ユーザーのパブリックIPとローカルIPを公開します。このポリシーを使用する場合、WebRTCはhttpで使用されるデフォルトルートのみを使用する必要があります。これにより、関連付けられたデフォルトのプライベートアドレスも公開されます。デフォルトルートは、マルチホームエンドポイントでOSによって選択されたルートです。
    • disable_non_proxied_udp - パブリックIPもローカルIPも公開しません。このポリシーを使用する場合、プロキシサーバーがUDPをサポートしていない限り、WebRTCはTCPを使用してピアまたはサーバーに接続する必要があります。

WebRTC IP ハンドリングポリシーを設定すると、WebRTCを介して公開されるIPを制御できます。詳細については、BrowserLeaks を参照してください。

contents.getWebRTCUDPPortRange()

Object を返します

  • min Integer - WebRTCが使用する必要がある最小UDPポート番号。
  • max Integer - WebRTCが使用する必要がある最大UDPポート番号。

デフォルトでは、この値は { min: 0, max: 0 } であり、UDPポート範囲に制限を適用しません。

contents.setWebRTCUDPPortRange(udpPortRange)

  • udpPortRange Object
    • min Integer - WebRTCが使用する必要がある最小UDPポート番号。
    • max Integer - WebRTCが使用する必要がある最大UDPポート番号。

WebRTC UDPポート範囲を設定すると、WebRTCで使用されるUDPポート範囲を制限できます。デフォルトでは、ポート範囲は制限されていません。注意: 無制限のポート範囲にリセットするには、この値を { min: 0, max: 0 } に設定する必要があります。

contents.getMediaSourceId(requestWebContents)

  • requestWebContents WebContents - IDが登録されるWebコンテンツ。

string を返します - WebContents ストリームの識別子。この識別子は、tabchromeMediaSource を使用して navigator.mediaDevices.getUserMedia で使用できます。識別子は、登録されている WebContents に制限され、10 秒間のみ有効です。

contents.getOSProcessId()

関連付けられたレンダラープロセスのオペレーティングシステム pid を表す Integer を返します。

contents.getProcessId()

関連付けられたレンダラーの Chromium 内部 pid を表す Integer を返します。フレーム固有のナビゲーションイベント(例:did-frame-navigate)で渡される frameProcessId と比較できます。

contents.takeHeapSnapshot(filePath)

  • filePath string - 出力ファイルのパス。

Promise<void> を返します - スナップショットが正常に作成されたかどうかを示します。

V8ヒープスナップショットを取得し、filePath に保存します。

contents.getBackgroundThrottling()

boolean を返します - この WebContents がページがバックグラウンドになったときにアニメーションとタイマーをスロットリングするかどうか。これは Page Visibility API にも影響します。

contents.setBackgroundThrottling(allowed)

履歴
  • allowed boolean

ページがバックグラウンドになったときに、この WebContents がアニメーションとタイマーをスロットリングするかどうかを制御します。これは Page Visibility API にも影響します。

contents.getType()

string を返します - webContent のタイプ。 backgroundPagewindowbrowserViewremotewebview、または offscreen のいずれかになります。

contents.setImageAnimationPolicy(policy)

  • policy string - animateanimateOnce、または noAnimation のいずれか。

この WebContents の画像アニメーションポリシーを設定します。このポリシーは、*新しい* 画像にのみ影響し、現在アニメーション中の既存の画像には影響しません。これは Chromium の既知の制限事項であり、img.src = img.src で画像アニメーションを再計算させることができます。これにより、ネットワークトラフィックは発生しませんが、アニメーションポリシーが更新されます。

これは、Chromium の animationPolicy アクセシビリティ機能に対応します。

インスタンスプロパティ

contents.ipc 読み取り専用

この WebContents から送信された IPC メッセージに限定された IpcMain

ipcRenderer.sendipcRenderer.sendSync、または ipcRenderer.postMessage で送信された IPC メッセージは、次の順序で配信されます。

  1. contents.on('ipc-message')
  2. contents.mainFrame.on(channel)
  3. contents.ipc.on(channel)
  4. ipcMain.on(channel)

invoke で登録されたハンドラーは、次の順序でチェックされます。最初に定義されたものが呼び出され、残りは無視されます。

  1. contents.mainFrame.handle(channel)
  2. contents.handle(channel)
  3. ipcMain.handle(channel)

WebContents に登録されたハンドラーまたはイベントリスナーは、子フレームを含む、任意のフレームから送信された IPC メッセージを受信します。ほとんどの場合、メインフレームのみが IPC メッセージを送信できます。ただし、nodeIntegrationInSubFrames オプションが有効になっている場合は、子フレームも IPC メッセージを送信できます。その場合、ハンドラーは IPC イベントの senderFrame プロパティをチェックして、メッセージが予期されたフレームから来ていることを確認する必要があります。あるいは、WebFrameMain.ipc インターフェースを使用して、適切なフレームに直接ハンドラーを登録します。

contents.audioMuted

このページがミュートされているかどうかを決定する boolean プロパティ。

contents.userAgent

この Web ページのユーザーエージェントを決定する string プロパティ。

contents.zoomLevel

この WebContents のズームレベルを決定する number プロパティ。

元のサイズは 0 で、それを上下する各増分は、それぞれ元のサイズの 300% および 50% のデフォルト制限まで、20% 拡大または縮小することを表します。この式は scale := 1.2 ^ level です。

contents.zoomFactor

この WebContents のズームファクターを決定する number プロパティ。

ズームファクターは、ズームパーセントを 100 で割ったものなので、300% = 3.0 です。

contents.frameRate

WebContents のフレームレートを指定された数値に設定する Integer プロパティ。1 から 240 までの値のみが受け入れられます。

オフスクリーンレンダリングが有効な場合にのみ適用されます。

contents.id 読み取り専用

この WebContents の一意の ID を表す Integer。各 ID は、Electron アプリケーション全体のすべての WebContents インスタンス間で一意です。

contents.session 読み取り専用

この WebContents で使用される Session

contents.navigationHistory 読み取り専用

この WebContents で使用される NavigationHistory

contents.hostWebContents 読み取り専用

この WebContents を所有している可能性のある WebContents インスタンス。

contents.devToolsWebContents 読み取り専用

特定の WebContents に関連付けられた DevTools WebContents を表す WebContents | null プロパティ。

注:DevTools が閉じられると null になる可能性があるため、ユーザーはこのオブジェクトを保存しないでください。

contents.debugger 読み取り専用

この WebContents の Debugger インスタンス。

contents.backgroundThrottling

履歴

この WebContents がページがバックグラウンドになったときにアニメーションとタイマーをスロットリングするかどうかを決定する boolean プロパティ。これは Page Visibility API にも影響します。

contents.mainFrame 読み取り専用

ページのフレーム階層の最上位フレームを表す WebFrameMain プロパティ。

contents.opener 読み取り専用

この WebContents を開いたフレーム(open() を使用するか、target 属性を持つリンクをナビゲートすることにより)を表す WebFrameMain プロパティ。