Aller au contenu principal

webContents

Fait le rendu et contrôle des pages web.

Processus : Main

webContents est un EventEmitter. Il est responsable du rendu et du contrôle d'une page web et est une propriété de l'objet BrowserWindow. Exemple d'accès à l'objet webContents :

const { BrowserWindow } = require('electron')

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

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

Méthodes

Ces méthodes sont accessibles depuis le module webContents :

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

webContents.getAllWebContents()

Retourne WebContents[] - Un tableau de toutes les instances de WebContents. Celui-ci contiendra le contenu web de toutes les fenêtres, webviews, devtools ouvertes et pages d'extention d'arrière-plan des devtools .

webContents.getFocusedWebContents()

Retourne WebContents - Le contenu web qui a le focus dans cette application, sinon retourne null.

webContents.fromId(id)

  • id Integer

Returns WebContents | undefined - A WebContents instance with the given ID, or undefined if there is no WebContents associated with the given ID.

webContents.fromDevToolsTargetId(targetId)

  • targetId string - The Chrome DevTools Protocol TargetID associated with the WebContents instance.

Returns WebContents | undefined - A WebContents instance with the given TargetID, or undefined if there is no WebContents associated with the given TargetID.

When communicating with the Chrome DevTools Protocol, it can be useful to lookup a WebContents instance based on its assigned TargetID.

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 webContents.fromDevToolsTargetId(targetId)
}

Classe : WebContents

Affiche et contrôle le contenu d'une instance de BrowserWindow.

Processus : Principal
Cette classe n'est pas exportée depuis le module 'electron'. Il n'est disponible qu'en tant que valeur de retour des autres méthodes dans l'API Electron.

Événements d’instance

Événement : 'did-finish-load'

Émis lorsque la navigation a abouti, c'est à dire que le loader de l'onglet a cessé de tourner, et l'événement onload a été émis.

Événement : 'did-fail-load'

Retourne :

  • event Event
  • errorCode Integer
  • errorDescription string
  • validatedURL string
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Cet événement est comme did-finish-load mais émis lorsque le chargement a échoué. La liste complète des codes d'erreur et leur signification est disponible ici.

Événement : 'did-fail-provisional-load'

Retourne :

  • event Event
  • errorCode Integer
  • errorDescription string
  • validatedURL string
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Cet événement est comme did-fail-load mais émis lorsque la charge a été annulée (par exemple window.stop() a été appelé).

Événement : 'did-frame-finish-load'

Retourne :

  • event Event
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Émis lorsqu'un frame a fini sa navigation.

Événement : 'did-start-loading'

Correspond au moment où le loader de l'onglet commence à tourner.

Événement : 'did-stop-loading'

Correspond au moment où le loader de l'onglet arrête de tourner.

Événement : 'dom-ready'

Retourne :

  • event Event

Emitted when the document in the top-level frame is loaded.

Événement : 'page-title-updated'

Retourne :

  • event Event
  • title string
  • explicitSet boolean

Fired when page title is set during navigation. explicitSet is false when title is synthesized from file url.

Événement : 'page-favicon-updated'

Retourne :

  • event Event
  • favicons string[] - Tableau d'URLs.

Émis lorsque la page reçoit l’url du favicon.

Événement : 'new-window' Déprécié

Retourne :

  • event NewWindowWebContentsEvent
  • url string
  • frameName string
  • disposition string - Peut être default, foreground-tab, background-tab, new-window, save-to-disk et other.
  • options BrowserWindowConstructorOptions - Les options qui seront utilisées pour créer le nouveau BrowserWindow.
  • additionalFeatures string[] - The non-standard features (features not handled by Chromium or Electron) given to window.open(). Deprecated, and will now always be the empty array [].
  • referrer Referrer - Le parrain qui sera passé à la nouvelle fenêtre. Peut ou ne peut pas entraîner l'envoi de l'en-tête Référent en fonction de la politique du référent.
  • postBody PostBody (optional) - The post data that will be sent to the new window, along with the appropriate headers that will be set. If no post data is to be sent, the value will be null. Only defined when the window is being created by a form that set target=_blank.

Obsolète, utiliser webContents.setWindowOpenHandler à la place.

Emitted when the page requests to open a new window for a url. It could be requested by window.open or an external link like <a target='_blank'>.

Un nouveau BrowserWindow sera créé par défaut pour l'url.

L'appel à event.preventDefault() empêchera Electron de créer automatiquement une nouvelle BrowserWindow. Si vous appelez event.preventDefault() et créez manuellement un nouveau BrowserWindow alors vous devez définir événement. ewGuest pour référencer la nouvelle instance BrowserWindow . Si vous ne le faites pas, cela peut entraîner un comportement inattendu. Par exemple :

myBrowserWindow.webContents.on('new-window', (event, url, frameName, disposition, options, additionalFeatures, referrer, postBody) => {
event.preventDefault()
const win = new BrowserWindow({
webContents: options.webContents, // use existing webContents if provided
show: false
})
win.once('ready-to-show', () => win.show())
if (!options.webContents) {
const loadOptions = {
httpReferrer: referrer
}
if (postBody != null) {
const { data, contentType, boundary } = postBody
loadOptions.postData = postBody.data
loadOptions.extraHeaders = `content-type: ${contentType}; boundary=${boundary}`
}

win.loadURL(url, loadOptions) // existing webContents will be navigated automatically
}
event.newGuest = win
})

Event: 'did-create-window'

Retourne :

  • window BrowserWindow
  • Objet details
    • url string - URL for the created window.
    • frameName string - Name given to the created window in the window.open() call.
    • options BrowserWindowConstructorOptions - The options used to create the BrowserWindow. They are merged in increasing precedence: parsed options from the features string from window.open(), security-related webPreferences inherited from the parent, and options given by webContents.setWindowOpenHandler. Unrecognized options are not filtered out.
    • referrer Referrer - Le parrain qui sera passé à la nouvelle fenêtre. May or may not result in the Referer header being sent, depending on the referrer policy.
    • postBody PostBody (optional) - The post data that will be sent to the new window, along with the appropriate headers that will be set. If no post data is to be sent, the value will be null. Only defined when the window is being created by a form that set target=_blank.
    • disposition string - Can be default, foreground-tab, background-tab, new-window, save-to-disk and other.

Emitted after successful creation of a window via window.open in the renderer. Not emitted if the creation of the window is canceled from webContents.setWindowOpenHandler.

See window.open() for more details and how to use this in conjunction with webContents.setWindowOpenHandler.

Événement : 'will-navigate'

Retourne :

  • event Event
  • url string

Emitted when a user or the page wants to start navigation. It can happen when the window.location object is changed or a user clicks a link in the page.

Cet événement ne sera pas émis lorsque la navigation démarre par programmation grâce aux APIs comme webContents.loadURL et webContents.back.

It is also not emitted for in-page navigations, such as clicking anchor links or updating the window.location.hash. Use did-navigate-in-page event for this purpose.

Appeler event.preventDefault() permet d'éviter la navigation.

Événement : 'did-start-navigation'

Retourne :

  • event Event
  • url string
  • isInPlace boolean
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Emitted when any frame (including main) starts navigating. isInPlace will be true for in-page navigations.

Événement : 'will-redirect'

Retourne :

  • event Event
  • url string
  • isInPlace boolean
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Emitted when a server side redirect occurs during navigation. For example a 302 redirect.

Cet événement sera émis après did-start-navigation et pour la même navigation toujours avant l'événement did-redirect-navigation .

L'appel à event.preventDefault() empêchera la navigation (pas seulement la redirection).

Event: 'did-redirect-navigation'

Retourne :

  • event Event
  • url string
  • isInPlace boolean
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Emitted after a server side redirect occurs during navigation. For example a 302 redirect.

This event cannot be prevented, if you want to prevent redirects you should checkout out the will-redirect event above.

Événement : 'did-navigate'

Retourne :

  • event Event
  • url string
  • httpResponseCode Integer - -1 for non HTTP navigations
  • httpStatusText string - empty for non HTTP navigations

Émis lorsque la navigation d'une fenêtre principale est terminée.

This event is not emitted for in-page navigations, such as clicking anchor links or updating the window.location.hash. Use did-navigate-in-page event for this purpose.

Event: 'did-frame-navigate'

Retourne :

  • event Event
  • url string
  • httpResponseCode Integer - -1 for non HTTP navigations
  • httpStatusText string - vide pour les navigations non HTTP,
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Émis lorsqu'une navigation est terminée.

This event is not emitted for in-page navigations, such as clicking anchor links or updating the window.location.hash. Use did-navigate-in-page event for this purpose.

Événement : 'did-navigate-in-page'

Retourne :

  • event Event
  • url string
  • isMainFrame boolean
  • frameProcessId Integer
  • frameRoutingId Integer

Emitted when an in-page navigation happened in any frame.

En cas de navigation dans la page, l'URL de la page change mais ne provoque pas de navigation à l'extérieur de la page. Par exemple, lorsque vous cliquez sur un lien d'ancrage ou lorsque l'événement DOM hashchange est déclenché.

Événement : 'will-prevent-unload'

Retourne :

  • event Event

Émis lorsqu’un écouteur de l'événement beforeunload tente d’annuler un déchargement de la page.

Appeler event.preventDefault() ignorera l'écouteur de l'événement beforeunload et va laisser la page se décharger.

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()
}
})

Note: This will be emitted for BrowserViews but will not be respected - this is because we have chosen not to tie the BrowserView lifecycle to its owning BrowserWindow should one exist per the specification.

Événement : 'crash' Déprécié

Retourne :

  • event Event
  • killed boolean

Émis lorsque le processus renderer crash ou est interrompu.

Deprecated: Cet événement est remplacé par l'événement render-process-gone qui contient plus d'informations à propos de la raison du plantage du processus enfant. Ceci n'est pas toujours causé par un plantage. Le booléen killed peut être remplacé par la vérification de reason === 'killed' lorsque vous passez à l'utilisation de cet événement.

Événement : 'render-process-gone'

Retourne :

  • event Event
  • Objet details
    • reason string - The reason the render process is gone. Valeurs possibles :
      • `` de sortie propre - Processus s'est terminé avec le code de sortie zéro
      • anormal-exit - Le Processus s'est terminé avec un code de sortie différent de zéro
      • killed - Le processus a reçu un SIGTERM ou a été tué autrement de l'extérieur
      • crashed - Processus s'est planté
      • oom - Le processus est tombé à cours de mémoire
      • launch-failed - Le processus ne s'est pas lancé avec succès
      • integrity-failure - Les vérifications d'intégrité du code Windows ont échouées
    • exitCode Integer - Le code de sortie du proces, sauf si reason est launch-failed, dans ce cas là exitCode sera specifique per plateforme.

Émis lorsque le processus de rendu plante de manière inattendue. C'est normalement dans les cas où il s'est planté ou qu'il a été tué.

Événement : 'unresponsive'

Émis lorsque la page web cesse de répondre.

Événement : 'responsive'

Émis lorsque la page web répond à nouveau.

Événement : 'plugin-crashed'

Retourne :

  • event Event
  • name string
  • version string

Émis lorsqu’un processus de plugin crash.

Événement : 'destroyed'

Émis lorsqu'un webContents est détruit.

Événement : 'before-input-event'

Retourne :

Émis avant d'envoyer les événements keydown et keyup dans la page. Appeler event.preventDefault empêchera les événements keydown/keyup et les raccourcis du menu dans la page.

To only prevent the menu shortcuts, use 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)
})

Événement : 'enter-html-full-screen'

Émis lorsque la fenêtre entre dans un état de plein écran déclenchée par l’API HTML.

Événement : 'leave-html-full-screen'

Émis lorsque la fenêtre revient d'un état de plein écran déclenchée par l’API HTML.

Événement : 'zoom-changed'

Retourne :

  • event Event
  • zoomDirection string - Peut être in ou out.

Émis lorsque l'utilisateur demande à changer le niveau de zoom en utilisant la molette de la souris.

Événement : 'blur'

Emitted when the WebContents loses focus.

Événement : 'focus'

Emitted when the WebContents gains focus.

Note that on macOS, having focus means the WebContents is the first responder of window, so switching focus between windows would not trigger the focus and blur events of WebContents, as the first responder of each window is not changed.

The focus and blur events of WebContents should only be used to detect focus change between different WebContents and BrowserView in the same window.

Événement : 'devtools-opened'

Émis lorsque la DevTools est ouverte.

Événement : 'devtools-closed'

Émis lorsque la DevTools est fermée.

Événement : 'devtools-focused'

Émis lorsque la DevTools est active / ouverte.

Événement 'certificate-error'

Retourne :

  • event Event
  • url string
  • error string - Le code d'erreur.
  • certificate Certificate
  • callback Function
    • isTrusted boolean - Indique si le certificat peut être considéré comme fiable.
  • isMainFrame boolean

Émis lorsqu'il n'a pas pu vérifier le certificat de l'url.

L'utilisation est pareil que l'événement certificate-error de app.

Événement : 'select-client-certificate'

Retourne :

  • event Event
  • url URL
  • certificateList Certificate[]
  • callback Function
    • certificate Certificate - Doit être un certificat dans la liste donnée.

Émis lorsqu'un certificat client est demandé.

L'utilisation est pareil que l'événement select-client-certificate de app.

Événement : 'login'

Retourne :

  • event Event
  • Objet authenticationResponseDetails
    • url URL
  • Objet authInfo
    • isProxy boolean
    • scheme string
    • host string
    • port Integer
    • realm string
  • callback Function
    • username string (optional)
    • password string (optional)

Émis lorsque webContents veut faire une authentification normale.

L'utilisation est pareil que l'événement login de app.

Événement : 'found-in-page'

Retourne :

  • event Event
  • result Object
    • requestId Integer
    • activeMatchOrdinal Integer - Position du résultat actif.
    • matches Integer - Nombre de résultats.
    • sélectionArea Rectangle - Coordonnées de la région de la première correspondance.
    • finalUpdate boolean

Émis lorsqu'un résultat est disponible pour la requête [webContents.findInPage].

Événement : 'media-started-playing'

Émis lorsqu'un média se démarre.

Événement : 'media-paused'

Émis lorsque le média est suspendu ou terminé.

Événement : 'did-change-theme-color'

Retourne :

  • event Event
  • color (string | null) - Theme color is in format of '#rrggbb'. It is null when no theme color is set.

Emitted when a page's theme color changes. This is usually due to encountering a meta tag:

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

Événement : 'update-target-url'

Retourne :

  • event Event
  • url string

Émis lorsque la souris passe sur un lien ou le clavier déplace le focus vers un lien.

Événement : 'cursor-changed'

Retourne :

  • event Event
  • type string
  • image NativeImage (facultatif)
  • scale Float (optional) - scaling factor for the custom cursor.
  • size Size (facultatif) - La taille de l'image.
  • hotspot Point (facultatif) - Coordonnées du point actif du curseur personnalisé.

Émis lorsque le type du curseur change. The type parameter can be default, crosshair, pointer, text, wait, help, e-resize, n-resize, ne-resize, nw-resize, s-resize, se-resize, sw-resize, w-resize, ns-resize, ew-resize, nesw-resize, nwse-resize, col-resize, row-resize, m-panning, e-panning, n-panning, ne-panning, nw-panning, s-panning, se-panning, sw-panning, w-panning, move, vertical-text, cell, context-menu, alias, progress, nodrop, copy, none, not-allowed, zoom-in, zoom-out, grab, grabbing or custom.

If the type parameter is custom, the image parameter will hold the custom cursor image in a NativeImage, and scale, size and hotspot will hold additional information about the custom cursor.

Événement : 'context-menu'

Retourne :

  • event Event
  • params Object
    • x Integer - x coordinate.
    • y Integer - y coordinate.
    • frame WebFrameMain - Frame from which the context menu was invoked.
    • linkURL string - L'URL du lien qui englobe le nœud du menu contextuel.
    • linkText string - Text associated with the link. May be an empty string if the contents of the link are an image.
    • pageURL string - L'URL de la page haut niveau d'où le menu contextuel a été invoqué.
    • frameURL string - L'URL de la subframe d'où le menu contextuel a été invoqué.
    • srcURL string - Source URL for the element that the context menu was invoked on. Elements with source URLs are images, audio and video.
    • mediaType string - Type du nœud sur lequel le menu contextuel a été appelé. Peut être none, image, audio, vidéo, toile, fichier ou plugin.
    • hasImageContents boolean - Si le menu contextuel a été invoqué sur une image au contenu non-vide ou non.
    • isEditable boolean - Si le contexte est modifiable ou non.
    • selectionText string - Texte de la sélection sur laquelle le menu contextuel a été invoqué.
    • titleText string - Title text of the selection that the context menu was invoked on.
    • altText string - Alt text of the selection that the context menu was invoked on.
    • suggestedFilename string - Suggested filename to be used when saving file through 'Save Link As' option of context menu.
    • selectionRect Rectangle - Rect representing the coordinates in the document space of the selection.
    • selectionStartOffset number - Start position of the selection text.
    • referrerPolicy Referrer - The referrer policy of the frame on which the menu is invoked.
    • misspelledWord string - Mot mal orthographié sous le curseur, si applicable.
    • dictionarySuggestions string[] - Un tableau de mots suggérés à montrer à l'utilisateur pour remplacer le misspelledWord. Uniquement disponible si un mot est mal orthographié et que le correcteur orthographique est activé.
    • frameCharset string - L'encodage des caractères de la fenêtre sur lequel le menu a été appelé.
    • inputFieldType string - Si le menu contextuel a été appelé sur un champ modifiable, donne le type de ce champ. Les valeurs possibles sont none, plainText, password, other.
    • spellcheckEnabled boolean - If the context is editable, whether or not spellchecking is enabled.
    • menuSourceType string - Input source that invoked the context menu. Can be none, mouse, keyboard, touch, touchMenu, longPress, longTap, touchHandle, stylus, adjustSelection, or adjustSelectionReset.
    • mediaFlags Object - The flags for the media element the context menu was invoked on.
      • inError boolean - Si l'élément multimédia a crash.
      • isPaused boolean - Si l'élément multimédia est en pause.
      • isMuted boolean - Si l'élément multimédia est mis en sourdine.
      • hasAudio boolean - Si l'élément multimédia émet un son audio.
      • isLooping boolean - Si l'élément multimédia est en boucle.
      • isControlsVisible boolean - Si les contrôles de l'élément multimédia sont visibles.
      • canToggleControls boolean - Si les contrôles de l'élément multimédia sont toggleable.
      • canPrint boolean - Whether the media element can be printed.
      • canSave boolean - Whether or not the media element can be downloaded.
      • canShowPictureInPicture boolean - Whether the media element can show picture-in-picture.
      • isShowingPictureInPicture boolean - Whether the media element is currently showing picture-in-picture.
      • canRotate boolean - Si l'élément multimédia peut être pivoté.
      • canLoop boolean - Whether the media element can be looped.
    • editFlags Object - These flags indicate whether the renderer believes it is able to perform the corresponding action.
      • canUndo boolean - Si le moteur de rendu pense pouvoir aller en arrière.
      • canRedo boolean - Si le moteur de rendu pense pouvoir aller en avant.
      • canCut boolean - Si le moteur de rendu pense pouvoir couper.
      • canCopy boolean - Si le moteur de rendu pense pouvoir copier.
      • canPaste boolean - Si le moteur de rendu pense pouvoir coller.
      • canDelete boolean - Si le moteur de rendu pense pouvoir supprimer.
      • canSelectAll boolean - Si le moteur de rendu pense pouvoir tout sélectionner.
      • canEditRichly boolean - Whether the renderer believes it can edit text richly.

Émis lorsqu'un nouveau menu contextuel a besoin d'être pris en charge.

Événement : 'select-bluetooth-device'

Retourne :

Émis lorsque le périphérique bluetooth a besoin d'être selectionné lors de l'appel de navigator.bluetooth.requestDevice. Pour utiliser l'api navigator.bluetooth, webBluethooth doit être activé. Si event.preventDefault n'est pas appelé, le premier périphérique disponible sera sélectionné. callback doit être appelé avec deviceId à sélectionner, en passant une chaîne de caractère vide au callback annulera la requête.

If no event listener is added for this event, all bluetooth requests will be cancelled.

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

let win = null
app.commandLine.appendSwitch('enable-experimental-web-platform-features')

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) {
callback('')
} else {
callback(result.deviceId)
}
})
})

Événement : 'paint'

Retourne :

Emitted when a new frame is generated. Only the dirty area is passed in the buffer.

const { BrowserWindow } = require('electron')

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

Événement : 'devtools-reload-page'

Émis quand la fenêtre des outils développeur demande aux webContents de se recharger

Événement : 'will-attach-webview'

Retourne :

  • event Event
  • webPreferences WebPreferences - The web preferences that will be used by the guest page. This object can be modified to adjust the preferences for the guest page.
  • params Record<string, string> - The other <webview> parameters such as the src URL. This object can be modified to adjust the parameters of the guest page.

Emitted when a <webview>'s web contents is being attached to this web contents. Calling event.preventDefault() will destroy the guest page.

This event can be used to configure webPreferences for the webContents of a <webview> before it's loaded, and provides the ability to set settings that can't be set via <webview> attributes.

Note: The specified preload script option will appear as preloadURL (not preload) in the webPreferences object emitted with this event.

Événement : 'will-attach-webview'

Retourne :

  • event Event
  • webContents WebContents - Les contenus web invités qui sont utilisés par <webview>.

Émis quand un <webview> a été rattaché à ce contenu web.

Événement : 'console-message'

Retourne :

  • event Event
  • level Integer - The log level, from 0 to 3. In order it matches verbose, info, warning and error.
  • message string - The actual console message
  • line Integer - The line number of the source that triggered this console message
  • sourceId string

Emitted when the associated window logs a console message.

Event: 'preload-error'

Retourne :

  • event Event
  • preloadPath string
  • error Error

Emitted when the preload script preloadPath throws an unhandled exception error.

Événement : 'ipc-message'

Retourne :

  • event Event
  • channel string
  • ...args any[]

Emitted when the renderer process sends an asynchronous message via ipcRenderer.send().

Event: 'ipc-message-sync'

Retourne :

  • event Event
  • channel string
  • ...args any[]

Emitted when the renderer process sends a synchronous message via ipcRenderer.sendSync().

Event: 'preferred-size-changed'

Retourne :

  • event Event
  • preferredSize Size - The minimum size needed to contain the layout of the document—without requiring scrolling.

Emitted when the WebContents preferred size has changed.

This event will only be emitted when enablePreferredSizeMode is set to true in webPreferences.

Event: 'frame-created'

Retourne :

  • event Event
  • Objet details
    • frame WebFrameMain

Emitted when the mainFrame, an <iframe>, or a nested <iframe> is loaded within the page.

Méthodes d’instance

contents.loadURL(url[, options])

  • url string
  • options Object (facultatif)
    • httpReferrer (string | Referrer) (optional) - An HTTP Referrer url.
    • userAgent string (optionnel) - Un agent utilisateur d'où provient la requête.
    • extraHeaders string (optionnel) - Headers supplémentaires séparés par "\n".
    • postData (UploadRawData | UploadFile)[] (optional)
    • baseURLForDataURL string (optional) - Base url (with trailing path separator) for files to be loaded by the data url. This is needed only if the specified url is a data url and needs to load other files.

Returns Promise<void> - the promise will resolve when the page has finished loading (see did-finish-load), and rejects if the page fails to load (see did-fail-load). A noop rejection handler is already attached, which avoids unhandled rejection errors.

Loads the url in the window. The url must contain the protocol prefix, e.g. the http:// or file://. If the load should bypass http cache then use the pragma header to achieve it.

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

contents.loadFile(filePath[, options])

  • filePath string
  • options Object (facultatif)
    • query Record<string, string> (optional) - Passed to url.format().
    • search string (facultatif) - Passé à url.format().
    • hash string (facultatif) - Passé à url.format().

Retourne Promise<void> - la promesse se résoudra lorsque la page aura terminé le chargement (voir did-finish-load), et rejette si la page ne parvient pas à se charger (voir did-fail-load).

Loads the given file in the window, filePath should be a path to an HTML file relative to the root of your application. Par exemple une structure d'application comme celle-ci :

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

Would require code like this

win.loadFile('src/index.html')

contents.downloadURL(url)

  • url string

Initiates a download of the resource at url without navigating. The will-download event of session will be triggered.

contents.getURL()

Returns string - The URL of the current web page.

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

contents.getTitle()

Returns string - The title of the current web page.

contents.isDestroyed()

Returns boolean - Whether the web page is destroyed.

contents.focus()

Met au premier plan la page web.

contents.isFocused()

Returns boolean - Whether the web page is focused.

contents.isLoading()

Returns boolean - Whether web page is still loading resources.

contents.isLoadingMainFrame()

Retourne boolean - Si la frame principale (et pas seulement un iframe ou frames qu'il contient) sont toujours en chargement.

contents.isWaitingForResponse()

Returns boolean - Whether the web page is waiting for a first-response from the main resource of the page.

contents.stop()

Arrête toute navigation en attente.

contents.reload()

Recharge la page web courante.

contents.reloadIgnoringCache()

Recharge la page courante et ignore le cache.

contents.canGoBack()

Returns boolean - Whether the browser can go back to previous web page.

contents.canGoForward()

Returns boolean - Whether the browser can go forward to next web page.

contents.canGoToOffset(offset)

  • offset Integer

Returns boolean - Whether the web page can go to offset.

contents.clearHistory()

Efface l'historique de navigation.

contents.goBack()

Makes the browser go back a web page.

contents.goForward()

Makes the browser go forward a web page.

contents.goToIndex(index)

  • index Integer

Navigates browser to the specified absolute web page index.

contents.goToOffset(offset)

  • offset Integer

Navigates to the specified offset from the "current entry".

contents.isCrashed()

Returns boolean - Whether the renderer process has crashed.

contents.forcefullyCrashRenderer()

Forcefully terminates the renderer process that is currently hosting this webContents. Cela provoquera l'émission de l'événement render-process-gone indiquant la cause avec reason=killed || reason=crashed. Please note that some webContents share renderer processes and therefore calling this method may also crash the host process for other webContents as well.

Calling reload() immediately after calling this method will force the reload to occur in a new process. This should be used when this process is unstable or unusable, for instance in order to recover from the unresponsive event.

contents.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) {
contents.forcefullyCrashRenderer()
contents.reload()
}
})

contents.setUserAgent(userAgent)

  • userAgent string

Overrides the user agent for this web page.

contents.getUserAgent()

Returns string - The user agent for this web page.

contents.insertCSS(css[, options])

  • css string
  • options Object (facultatif)
    • cssOrigin string (facultatif) - Peut être 'user' ou 'author'. Définit l'origine de la cascade de la feuille de style insérée. La valeur par défaut est 'author'.

Retourne Promise<string> - Une promesse qui se résout avec une clé pour le CSS inséré qui peut être utilisé plus tard pour supprimer le CSS via contents.removeInsertedCSS(key).

Injecte du CSS dans la page Web actuelle et renvoie une clé unique pour la feuille de style insérée .

contents.on('did-finish-load', () => {
contents.insertCSS('html, body { background-color: #f00; }')
})

contents.removeInsertedCSS(key)

  • key string

Returns Promise<void> - Resolves if the removal was successful.

Removes the inserted CSS from the current web page. La feuille de style est identifiée par sa clé, qui est retournée par contents.insertCSS(css).

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

contents.executeJavaScript(code[, userGesture])

  • code string
  • userGesture boolean (optional) - Default is false.

Retourne Promise<any> - Une promesse qui se résout avec le résultat du code exécuté ou se rejette si le résultat du code est une promesse rejetée.

Évalue le code dans la page.

Dans la fenêtre du navigateur, certaines APIs HTML comme requestFullScreen peut être invoqué seulement par un geste de l'utilisateur. Définir userGesture à true supprimera cette limitation.

L'exécution du code sera suspendue jusqu'à la fin du chargement de la page web.

contents.executeJavaScript('fetch("https://jsonplaceholder.typicode.com/users/1").then(resp => resp.json())', true)
.then((result) => {
console.log(result) // sera l'objet JSON de l'appel à fetch
})

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

  • worldId Integer - L'ID du monde dans lequel exécuter le javascript, 0 est le monde par défaut, 999 est le monde utilisé par la fonctionnalité contextIsolation d'Electron. You can provide any integer here.
  • scripts WebSource[]
  • userGesture boolean (optional) - Default is false.

Retourne Promise<any> - Une promesse qui se résout avec le résultat du code exécuté ou se rejette si le résultat du code est une promesse rejetée.

Works like executeJavaScript but evaluates scripts in an isolated context.

contents.setIgnoreMenuShortcuts(ignore)

  • ignore boolean

Ignorer les raccourcis du menu des applications lorsque ce contenu Web a le focus.

contents.setWindowOpenHandler(handler)

  • handler Function<{action: 'deny'} | {action: 'allow', overrideBrowserWindowOptions?: BrowserWindowConstructorOptions}>

    • Objet details
      • url string - La a résolu la version de l'URL passée à window.open(). par exemple, ouvrir une fenêtre avec window.open('foo') donnera quelque chose comme https://the-origin/the/current/path/foo.
      • frameName string - Nom de la fenêtre fourni dans window.open()
      • features string - Liste séparée par des virgules des fonctionnalités de fenêtre fournies à window.open().
      • disposition string - Peut être default, foreground-tab, background-tab, new-window, save-to-disk et other.
      • referrer Referrer - Le parrain qui sera passé à la nouvelle fenêtre. Peut ou ne peut pas entraîner l'envoi de l'en-tête Référent en fonction de la politique du référent.
      • postBody PostBody (optional) - The post data that will be sent to the new window, along with the appropriate headers that will be set. If no post data is to be sent, the value will be null. Only defined when the window is being created by a form that set target=_blank.

    Renvoie {action: 'deny'} | {action: 'allow', overrideBrowserWindowOptions?: BrowserWindowConstructorOptions} - deny annule la création de la nouvelle fenêtre. . allow permettra la création de la nouvelle fenêtre. La spécification de overrideBrowserWindowOptions permet de personnaliser la fenêtre créée. Le renvoi d’une valeur non reconnue telle qu’une valeur null, un objet non défini ou un objet sans valeur d’action reconnue entraînera une erreur dans la console et aura le même effet que le renvoi de {action: 'deny'}.

Appelé avant la création d'une fenêtre, une nouvelle fenêtre est demandée par le moteur de rendu, p. ex. par window.open(), un lien avec target="_blank", Maj + clic sur un lien, ou soumettant un formulaire avec <form target="_blank">. Voir window.open() pour plus de détails et comment l'utiliser en conjonction avec did-create-window.

contents.setAudioMuted(muted)

  • muted boolean

Couper le son sur la page web actuelle.

contents.isAudioMuted()

Renvoie boolean - Si cette page a été rendu muette.

contents.isCurrentlyAudible()

Returns boolean - Whether audio is currently playing.

contents.setZoomFactor(factor)

  • factor Double - Zoom factor; default is 1.0.

Modifie le facteur de zoom en utilisant le facteur spécifié. Le Zoom factor est égal à la valeur du zoom exprimée en pourcent divisée par 100, donc 300% = 3.0.

Le rapport doit être supérieur à 0.0.

contents.getZoomFactor()

Returns number - the current zoom factor.

contents.setZoomLevel(level)

  • level number - Niveau de zoom.

Modifie le niveau de zoom jusqu'au niveau spécifié. La taille originale est de 0 et chaque incrément au-dessus ou en dessous représente un zoom de 20% supérieur ou inférieure jusqu'au limites de 300% et 50% de la taille originale, respectivement. La formule pour cela est 'scale:= 1,2 ^ level.

NOTE: La politique de zoom au niveau Chromium est same-origin, ce qui signifie que le niveau de zoom pour un domaine spécifique se propage à travers toutes les instances de fenêtres du même domaine. La différenciation des URL de fenêtre assignera un zoom par fenêtre.

contents.getZoomLevel()

Returns number - the current zoom level.

contents.setVisualZoomLevelLimits(minimumLevel, maximumLevel)

  • minimumLevel number
  • maximumLevel number

Retourne Promise<void>

Définit le niveau maximum et minimum le niveau pinch-to-zoom.

NOTE: Le zoom visuel est désactivé par défaut dans Electron. Pour le réactiver:

contents.setVisualZoomLevelLimits(1, 3)

contents.undo()

Exécute la commande d'édition undo dans la page web.

contents.redo()

Exécute la commande d'édition redo dans la page web.

contents.cut()

Exécute la commande d'édition cut dans la page web.

contents.copy()

Exécute la commande d'édition copy dans la page web.

contents.copyImageAt(x, y)

  • x Integer
  • y Integer

Copiez l'image à la position donnée dans le presse-papiers.

contents.paste()

Exécute la commande d'édition paste dans la page web.

contents.pasteAndMatchStyle()

Exécute la commande d'édition pasteAndMatchStyle dans la page web.

contents.delete()

Exécute la commande d'édition delete dans la page web.

contents.selectAll()

Exécute la commande d'édition selectAll dans la page web.

contents.unselect()

Exécute la commande d'édition unselect dans la page web.

contents.replace(text)

  • text string

Exécute la commande d'édition replace dans la page web.

contents.replaceMisspelling(text)

  • text string

Exécute la commande d'édition replaceMisspelling dans la page web.

contents.insertText(text)

  • text string

Retourne Promise<void>

Insère le text à l'élément ciblé.

contents.findInPage(text[, options])

  • text string - Content to be searched, must not be empty.
  • options Object (facultatif)
    • forward boolean (facultatif) - Rechercher soit en avant soit en arrière, la valeur par défaut est true.
    • findNext boolean (optional) - Whether to begin a new text finding session with this request. Doit être true pour les requêtes initiales et false pour les requêtes de suivi. Par défaut, faux.
    • matchCase boolean (optional) - Whether search should be case-sensitive, defaults to false.

Returns Integer - The request id used for the request.

Starts a request to find all matches for the text in the web page. Le résultat de la requête peut être obtenu en s'abonnant à l'événement found-in-page.

contents.stopFindInPage(action)

  • action string - Spécifie l'action à effectuer à la fin de la requête [webContents.findInPage].
    • clearSelection - Clear the selection.
    • keepSelection - Translate the selection into a normal selection.
    • activateSelection - Focus and click the selection node.

Arrête toute demande findInPage pour le webContents avec l' action fournie.

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

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

contents.capturePage([rect])

  • rect Rectangle (optionnel) - La zone de la page dont on doit réaliser la capture.

Retourne Promise<NativeImage> - résout avec une NativeImage

Captures a snapshot of the page within rect. Omitting rect will capture the whole visible page.

contents.isBeingCaptured()

Renvoie boolean - Si cette page a été rendu muette. Il renvoie true lorsque le nombre de captures est supérieur à 0.

contents.incrementCapturerCount([size, stayHidden, stayAwake])

  • size Size (facultatif) - La taille préférée pour le capturer.
  • stayHidden booléen (facultatif) - Maintient la page cachée au lieu de visible.
  • stayAwake boolean (facultatif) - Maintient le système hors veille.

Augmentez le nombre de capteurs par un. La page est considérée visible lorsque sa fenêtre de navigateur est cachée et que le nombre de capteurs n'est pas nul. Si vous souhaitez que la page reste cachée, vous devez vous assurer que stayHidden est défini à true.

Cela affecte également l'API de Visibilité de page.

contents.decrementCapturerCount([stayHidden, stayAwake])

  • stayHidden booléen (facultatif) - Maintient la page cachée au lieu de visible.
  • stayAwake boolean (facultatif) - Maintient le système hors veille.

Diminuer le nombre de capteurs par un. La page sera définie à l'état caché ou occulté lorsque sa fenêtre de navigateur est cachée ou occultée et que le nombre de capteurs atteint zéro. Si vous voulez diminuer le nombre de capteurs cachés à la place, vous devez définir stayHidden à true.

contents.getPrinters() Déprécié

Récupère la liste des imprimantes système.

Retourne PrinterInfo[]

Déprécié : Doit utiliser le nouveau contents.getPrintersAsync API.

contents.getPrintersAsync()

Récupère la liste des imprimantes système.

Retourne Promise<PrinterInfo[]> - qui se résout avec un PrinterInfo[]

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

  • options Object (facultatif)
    • silent boolean (optional) - Don't ask user for print settings. Par défaut la valeur est false.
    • printBackground boolean (optional) - Prints the background color and image of the web page. Par défaut la valeur est false.
    • deviceName string (optional) - Set the printer device name to use. Must be the system-defined name and not the 'friendly' name, e.g 'Brother_QL_820NWB' and not 'Brother QL-820NWB'.
    • color boolean (optional) - Set whether the printed web page will be in color or grayscale. La valeur par défaut est vraie.
    • margins Object (facultatif)
      • marginType string (optional) - Can be default, none, printableArea, or custom. If custom is chosen, you will also need to specify top, bottom, left, and right.
      • top number (optional) - The top margin of the printed web page, in pixels.
      • bottom number (optional) - The bottom margin of the printed web page, in pixels.
      • left number (optional) - The left margin of the printed web page, in pixels.
      • right number (optional) - The right margin of the printed web page, in pixels.
    • landscape boolean (optional) - Whether the web page should be printed in landscape mode. Par défaut la valeur est false.
    • scaleFactor number (optional) - The scale factor of the web page.
    • pagesPerSheet number (optional) - The number of pages to print per page sheet.
    • collate boolean (optional) - Whether the web page should be collated.
    • copies number (optional) - The number of copies of the web page to print.
    • pageRanges Object[] (facultatif) - La plage de page à imprimer. Sur macOS, une seule plage est considérée.
      • from number - Index de la première page à imprimer (0-based).
      • to number - Index of the last page to print (inclusive) (0-based).
    • duplexMode string (optional) - Set the duplex mode of the printed web page. Can be simplex, shortEdge, or longEdge.
    • dpi Record<string, number> (optional)
      • horizontal number (optional) - The horizontal dpi.
      • vertical number (optional) - The vertical dpi.
    • header string (optional) - string to be printed as page header.
    • footer string (optional) - string to be printed as page footer.
    • pageSize string | Size (optional) - Specify page size of the printed document. Can be A3, A4, A5, Legal, Letter, Tabloid or an Object containing height.
  • callback Function (facultatif)
    • success booléen - Indique le succès de l'appel à l'impression.
    • Chaîne failureReason - La description de l'erreur appelée si l'impression échoue.

Lorsqu'un pageSize personnalisée est transmise, Chromium tente de valider par rapport aux valeurs minimales spécifiques à la plate-forme width_microns et height_microns. La largeur et la hauteur doivent être au moins 353 microns mais peuvent être plus élevées sur certains systèmes d'exploitation.

Imprime la page web de la fenêtre. Lorsque silent est défini à true, Electron choisira l'imprimante par défaut du système si deviceName est vide ainsi que les paramètres d'impression par défaut.

Utiliser le style CSS page-break-before: always; pour forcer l'impression vers une nouvelle page.

Exemple d'utilisation :

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)

  • Objet options
    • headerFooter Record<string, string> (optional) - the header and footer for the PDF.
      • title string - The title for the PDF header.
      • url string - the url for the PDF footer.
    • landscape boolean (optional) - true for landscape, false for portrait.
    • marginsType Integer (optional) - Specifies the type of margins to use. Uses 0 for default margin, 1 for no margin, and 2 for minimum margin.
    • scaleFactor number (optional) - The scale factor of the web page. Can range from 0 to 100.
    • pageRanges Record<string, number> (optional) - The page range to print.
      • from number - Index de la première page à imprimer (0-based).
      • to number - Index of the last page to print (inclusive) (0-based).
    • pageSize string | Size (optional) - Specify page size of the generated PDF. Peut être A3, A4, A5, Legal, Letter, Tabloid ou un objet contenant height et width en microns.
    • printBackground boolean (optional) - Whether to print CSS backgrounds.
    • printSelectionOnly boolean (optional) - Whether to print selection only.

Retourne une Promise<Buffer> -se résolvant avec des données PDF générées.

Imprime la page web de la fenêtre en PDF avec les paramètres personnalisés de l'aperçu d'impression de Chromium.

Le landscape sera ignoré si la règle CSS de @page est utilisée dans la page web.

Par défaut, un options vide sera considéré comme :

{
marginsType: 0,
printBackground: false,
printSelectionOnly: false,
landscape: false,
pageSize: 'A4',
scaleFactor: 100
}

Utiliser le style CSS page-break-before: always; pour forcer l'impression vers une nouvelle page.

Un exemple de webContents.printToPDF:

const { BrowserWindow } = require('electron')
const fs = require('fs')
const path = require('path')
const os = require('os')

const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('http://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)
})
})

contents.addWorkSpace(path)

  • path string

Ajoute le chemin spécifié à l'espace de travail des DevTools. Doit être utilisé après la création des DevTools :

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

contents.removeWorkSpace(path)

  • path string

Supprime le chemin spécifié de l'espace de travail DevTools.

contents.setDevToolsWebContents(devToolsWebContents)

  • devToolsWebContents WebContents

Utilise le devToolsWebContents comme la cible WebContents pour afficher les outils de développement.

Le devToolsWebContents ne doit pas avoir fait de navigation, et ne doit pas être utilisé à d'autres fins après l'appel.

Par défaut, Electron gère les devtools en créant un WebContents interne avec une vue native sur laquelle les développeurs ont un contrôle très limité. Avec la méthode setDevToolsWebContents , les développeurs peuvent utiliser n'importe quel WebContents pour afficher les outils de développement dedans, y compris les balises BrowserWindow, BrowserView et <webview> .

Notez que la fermeture des devtools ne détruit pas le devToolsWebContents, il est de la responsabilité de l’appelant de détruire devToolsWebContents.

Exemple d'affichage des devtools dans une balise <webview>:

<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()
})

Exemple d'affichage des devtools dans une BrowserWindow:

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 Object (facultatif)
    • mode string - Ouvre les devtools avec un positioçnnement spécifié qui peut être left, right, bottom, undocked ou detach. Par défaut, le dernier positionnement utilisé. En mode undocked , il est possible de s’ancrer de nouveau. En mode detach , ce n'est pas le cas.
    • activate booléen (facultatif) - Indiquez s’il faut mettre la fenêtre devtools ouverte au premier plan. Par défaut, true.

Ouvre les devtools.

Quand contents est une balise <webview> , le mode sera detach par défaut, passer explicitement un mode vide peut forcer l'utilisation du dernier état de dock utilisé.

contents.closeDevTools()

Ferme les devtools.

contents.isDevToolsOpened()

Retourne boolean - Si les devtools sont ouvert.

contents.isDevToolsFocused()

Retourne boolean - Si les devtools ont le focus.

contents.toggleDevTools()

Active/désactive les outils développeur.

contents.inspectElement(x, y)

  • x Integer
  • y Integer

Démarre l’inspection de l’élément en position (x, y).

contents.inspectSharedWorker()

Ouvre les outils de développement pour le contexte de travail partagé.

contents.inspectSharedWorkerById(workerId)

  • workerId string

Inspecte le processus partagé en fonction de son ID.

contents.getAllSharedWorkers()

Retourne SharedWorkerInfo[] - Informations sur tous les Workers partagés.

contents.inspectServiceWorker()

Ouvre les outils de développement pour le contexte deworker partagé.

contents.send(channel, ...args)

  • channel string
  • ...args any[]

Send an asynchronous message to the renderer process via channel, along with arguments. Les arguments seront sérialisés avec le Structured Clone Algorithm, tout comme postMessage, de sorte que les chaînes prototypes ne seront pas incluses. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw an exception.

NOTE: L'envoi de types Javascript non standards tels que des objets DOM ou des objets spéciaux Electron est déprécié, et déclenchera une exception à partir d'Electron 9.

The renderer process can handle the message by listening to channel with the ipcRenderer module.

Un exemple d'envoi de messages depuis le processus principal vers le processus de rendu :

// Dans le processus main.
const { app, BrowserWindow } = require('electron')
let win = null

app.whenReady().then(() => {
win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL(`file://${__dirname}/index.html`)
win.webContents.on('did-finish-load', () => {
win.webContents.send('ping', 'whoooooooh!')
})
})
<!-- index.html -->
<html>
<body>
<script>
require('electron').ipcRenderer.on('ping', (event, message) => {
console.log(message) // Prints 'whoooooooh!'
})
</script>
</body>
</html>

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

  • frameId Integer | [number, number]- l'ID de la frame à envoyer, ou une paire de [processId, frameId] si la frame est dans un processus différent de la principale.
  • channel string
  • ...args any[]

Envoie un message asynchrone au processus principal via channel, ainsi que des arguments. Les arguments seront sérialisés avec le Structured Clone Algorithm, tout comme postMessage, de sorte que les chaînes prototypes ne seront pas incluses. L'envoie de Functions, Promises, Symbols, WeakMaps, ou WeakSets déclenchear une exception.

NOTE: L'envoi de types Javascript non standards tels que des objets DOM ou des objets spéciaux Electron est déprécié, et déclenchera une exception à partir d'Electron 9.

The renderer process can handle the message by listening to channel with the ipcRenderer module.

Si vous voulez obtenir le frameId d'un contexte de rendu donné, vous devez utiliser la valeur webFrame.routingId. Exemple :

// Dans un processus de rendu
console.log('Mon frameId est:', require('electron').webFrame.routingId)

Vous pouvez également lire frameId de tous les messages IPC entrants dans le processus principal.

// Dans le processus principal
ipcMain.on('ping', (event) => {
console.info('Le message est venu de frameId:', event.frameId)
})

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

  • channel string
  • message tous
  • transfer MessagePortMain[] (optional)

Envoie un message au processus de rendu en effectuant éventuellement un transfert de propriété de zéro ou plus objets de type [MessagePortMain][].

Les objets MessagePortMain transférés seront disponibles dans le processus de rendu en accédant à la propriété ports de l'événement émis. Ils seront des objets DOM MessagePort natifs en arrivant dans le moteur de rendu.

Par exemple :

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

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

contents.enableDeviceEmulation(parameters)

  • Objet parameters
    • screenPosition string - Indique le type d'écran à émuler (par défaut: desktop ) :
      • desktop - Desktop screen type.
      • mobile - Mobile screen type.
    • screenSize Size - Défini la taille de l’écran émulé (screenPosition == mobile).
    • viewPosition Point - Positionne la vue sur l'écran (screenPosition == mobile) (par défaut : { x: 0, y: 0 }).
    • deviceScaleFactor Entier - Défini le facteur d’échelle du périphérique (par défaut sur facteur d’échelle du périphérique d’origine si mis à 0) (par défaut : 0).
    • viewSize Size - Défini la taille de l’écran émulé (pas de surcharge si vide)
    • scale Float - Échelle de la vue émulée à l’intérieur de l’espace disponible (non adaptée au mode d’affichage ) (par défaut : 1).

Activer l'émulation de l'appareil avec les paramètres donnés.

contents.disableDeviceEmulation()

Désactiver l’émulation de périphérique activée par webContents.enableDeviceEmulation.

contents.sendInputEvent(inputEvent)

Sends an input event to the page. Note: La BrowserWindow contenant le contenu doit avoir le focus pour que sendInputEvent() fonctionne.

contents.beginFrameSubscription([onlyDirty ,]callback)

  • onlyDirty boolean (optionnel) - false par défaut.
  • callback Function

Commencez à vous abonner aux événements de présentation et aux images capturées, le callback sera appelé avec callback(image, dirtyRect) lorsqu'il y aura un événement de présentation .

L' image est une instance de NativeImage qui stocke la frame capturée.

The dirtyRect is an object with x, y, width, height properties that describes which part of the page was repainted. If onlyDirty is set to true, image will only contain the repainted area. onlyDirty defaults to false.

contents.endFrameSubscription()

End subscribing for frame presentation events.

contents.startDrag(item)

  • Objet item
    • file string - The path to the file being dragged.
    • files string[] (optional) - The paths to the files being dragged. (files will override file field)
    • icon NativeImage | string - The image must be non-empty on macOS.

Sets the item as dragging item for current drag-drop operation, file is the absolute path of the file to be dragged, and icon is the image showing under the cursor when dragging.

contents.savePage(fullPath, saveType)

  • fullPath string - The absolute file path.
  • saveType string - Specify the save type.
    • HTMLOnly - Save only the HTML of the page.
    • HTMLComplete - Save complete-html page.
    • MHTML - Save complete-html page as MHTML.

Returns Promise<void> - resolves if the page is saved.

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

Shows pop-up dictionary that searches the selected word on the page.

contents.isOffscreen()

Returns boolean - Indicates whether offscreen rendering is enabled.

contents.startPainting()

If offscreen rendering is enabled and not painting, start painting.

contents.stopPainting()

If offscreen rendering is enabled and painting, stop painting.

contents.isPainting()

Returns boolean - If offscreen rendering is enabled returns whether it is currently painting.

contents.setFrameRate(fps)

  • fps Integer

If offscreen rendering is enabled sets the frame rate to the specified number. Seules les valeurs comprises entre 1 et 240 sont acceptées.

contents.getFrameRate()

Returns Integer - If offscreen rendering is enabled returns the current frame rate.

contents.invalidate()

Schedules a full repaint of the window this web contents is in.

If offscreen rendering is enabled invalidates the frame and generates a new one through the 'paint' event.

contents.getWebRTCIPHandlingPolicy()

Returns string - Returns the WebRTC IP Handling Policy.

contents.setWebRTCIPHandlingPolicy(policy)

  • policy string - Specify the WebRTC IP Handling Policy.
    • default - Exposes user's public and local IPs. C’est le comportement par défaut. When this policy is used, WebRTC has the right to enumerate all interfaces and bind them to discover public interfaces.
    • default_public_interface_only - Exposes user's public IP, but does not expose user's local IP. When this policy is used, WebRTC should only use the default route used by http. This doesn't expose any local addresses.
    • default_public_and_private_interfaces - Exposes user's public and local IPs. When this policy is used, WebRTC should only use the default route used by http. This also exposes the associated default private address. Default route is the route chosen by the OS on a multi-homed endpoint.
    • disable_non_proxied_udp - Does not expose public or local IPs. When this policy is used, WebRTC should only use TCP to contact peers or servers unless the proxy server supports UDP.

Setting the WebRTC IP handling policy allows you to control which IPs are exposed via WebRTC. Voir BrowserLeaks pour plus de détails.

contents.getMediaSourceId(requestWebContents)

  • requestWebContents WebContents - Web contents that the id will be registered to.

Returns string - The identifier of a WebContents stream. This identifier can be used with navigator.mediaDevices.getUserMedia using a chromeMediaSource of tab. The identifier is restricted to the web contents that it is registered to and is only valid for 10 seconds.

contents.getOSProcessId()

Returns Integer - The operating system pid of the associated renderer process.

contents.getProcessId()

Returns Integer - The Chromium internal pid of the associated renderer. Can be compared to the frameProcessId passed by frame specific navigation events (e.g. did-frame-navigate)

contents.takeHeapSnapshot(filePath)

  • filePath string - Chemin vers le fichier de sortie.

Retourne Promise<void> - Indique si l'instantané a été créé avec succès.

Prend un instantané de tas V8 et l'enregistre dans filePath.

contents.getBackgroundThrottling()

Returns boolean - whether or not this WebContents will throttle animations and timers when the page becomes backgrounded. Cela affecte également l'API de Visibilité de page.

contents.setBackgroundThrottling(allowed)

  • allowed boolean

Controls whether or not this WebContents will throttle animations and timers when the page becomes backgrounded. Cela affecte également l'API de Visibilité de page.

contents.getType()

Returns string - the type of the webContent. Can be backgroundPage, window, browserView, remote, webview or offscreen.

contents.setImageAnimationPolicy(policy)

  • policy string - Peut être animate, animateOnce ou noAnimation.

Sets the image animation policy for this webContents. The policy only affects new images, existing images that are currently being animated are unaffected. This is a known limitation in Chromium, you can force image animation to be recalculated with img.src = img.src which will result in no network traffic but will update the animation policy.

This corresponds to the animationPolicy accessibility feature in Chromium.

Propriétés d'instance

contents.audioMuted

A boolean property that determines whether this page is muted.

contents.userAgent

A string property that determines the user agent for this web page.

contents.zoomLevel

A number property that determines the zoom level for this web contents.

The original size is 0 and each increment above or below represents zooming 20% larger or smaller to default limits of 300% and 50% of original size, respectively. The formula for this is scale := 1.2 ^ level.

contents.zoomFactor

A number property that determines the zoom factor for this web contents.

Le facteur de zoom est le pourcentage de zoom divisé par 100, donc 300% = 3.0.

contents.frameRate

An Integer property that sets the frame rate of the web contents to the specified number. Seules les valeurs comprises entre 1 et 240 sont acceptées.

Only applicable if offscreen rendering is enabled.

contents.id Lecture seule

A Integer representing the unique ID of this WebContents. Chaque ID est unique parmi ceux des instances de WebContents de l'application Electron.

contents.session Lecture seule

A Session used by this webContents.

contents.hostWebContents Lecture seule

A WebContents instance that might own this WebContents.

contents.devToolsWebContents Lecture seule

A WebContents | null property that represents the of DevTools WebContents associated with a given WebContents.

Note: Users should never store this object because it may become null when the DevTools has been closed.

contents.debugger Lecture seule

A Debugger instance for this webContents.

contents.backgroundThrottling

A boolean property that determines whether or not this WebContents will throttle animations and timers when the page becomes backgrounded. Cela affecte également l'API de Visibilité de page.

contents.mainFrame Lecture seule

A WebFrameMain property that represents the top frame of the page's frame hierarchy.