Aller au contenu principal

webFrame

Accés à la page web actuelle et à sa personnalisation.

Processus : Renderer

webFrame est une instance de la classe WebFrame produite par l'export du module Electron et représentant la frame actuelle. Les sous-frames peuvent être récupérées à l'aide de certaines propriétés et méthodes (par exemple webFrame.firstChild).

Exemple d'un zoom de 200% de la page actuelle.

const { webFrame } = require('electron')

webFrame.setZoomFactor(2)

Méthodes

L’objet WebFrame dispose des méthodes d’instance suivantes :

webFrame.setZoomFactor(factor)

  • factor Double - Facteur de zoom ; la valeur par défaut est 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.

webFrame.getZoomFactor()

Retourne number - Le facteur de zoom actuel.

webFrame.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.

NOTE: La politique du zoom au niveau de 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. Une différenciation de l'URL des fenêtre assignera un niveau de zoom par fenêtre.

webFrame.getZoomLevel()

Retourne number - Le niveau de zoom actuel.

webFrame.setVisualZoomLevelLimits(minimumLevel, maximumLevel)

  • minimumLevel number
  • maximumLevel number

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:

webFrame.setVisualZoomLevelLimits(1, 3)

NOTE: Le zoom visuel s'applique uniquement au comportement pinch-to-zoom. Les raccourcis de zoom Cmd+/-/0 sont contrôlés par les rôles des MenuItem 'zoomIn', 'zoomOut' et 'resetZoom' dans le menu de l'application. Pour désactiver les raccourcis, définissez manuellement le Menu et omettez les rôles de zoom de la définition.

webFrame.setSpellCheckProvider(language, provider)

  • language string
  • Objet provider
    • spellCheck Function
      • words string[]
      • callback Function
        • misspeltWords string[]

Définit un fournisseur pour la correction orthographique dans les champs de saisie et les zones de texte.

Si vous désirez utiliser cette méthode, vous devrez désactiver le vérificateur d'orthographe intégré lors de la création de la fenêtre.

const mainWindow = new BrowserWindow({
webPreferences: {
spellcheck: false
}
})

Le provider doit être un objet ayant une méthode spellCheck qui reçoit un tableau de mots pour la vérification orthographique. Cette méthode spellCheck s'exécute de manière asynchrone et appellera, une fois le travail terminé, la fonction callback avec un tableau des mots mal orthographiés.

Exemple utilisant node-spellchecker dans le provider:

const { webFrame } = require('electron')
const spellChecker = require('spellchecker')
webFrame.setSpellCheckProvider('en-US', {
spellCheck (words, callback) {
setTimeout(() => {
const misspelled = words.filter(x => spellchecker.isMisspelled(x))
callback(misspelled)
}, 0)
}
})

webFrame.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 string - Une clé pour le CSS inséré qui peut être utilisé plus tard pour supprimer le CSS via webFrame.removeInsertedCSS(key).

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

webFrame.removeInsertedCSS(key)

  • key string

Supprime de la page web actuelle le CSS inséré. La feuille de style est identifiée par sa clé, qui est retournée par webFrame.insertCSS(css).

webFrame.insertText(text)

  • text string

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

webFrame.executeJavaScript(code[, userGesture, callback])

  • code string
  • userGesture boolean (facultatif) - false par défaut.
  • callback Function (facultatif) - Appelée après la fin de l'opération d'écriture. A moins que le fonctionnement de la a frame ne soit interrompu (par ex. par l'affichage d'une alerte modale), l'exécution sera synchrone et la callback sera invoquée juste avant le retour de la méthode. Afin de rester compatible avec une ancienne version de cette méthode, le paramètre d'erreur arrive en seconde position.
    • result Any
    • error Error

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.

webFrame.executeJavaScriptInIsolatedWorld(worldId, scripts[, userGesture, callback])

  • worldId Integer - Id de l'univers dans lequel exécuter le javascript , 0 est l'univers principal par défaut (où le contenu s'exécute), 999 est l'univers utilisé par la fonctionnalité contextIsolation d'Electron. Accepte les valeurs dans l'intervalle 1..536870911.
  • scripts WebSource[]
  • userGesture boolean (facultatif) - false par défaut.
  • callback Function (facultatif) - Appelée après la fin de l'opération d'écriture. A moins que le fonctionnement de la a frame ne soit interrompu (par ex. par l'affichage d'une alerte modale), l'exécution sera synchrone et la callback sera invoquée juste avant le retour de la méthode. Afin de rester compatible avec une ancienne version de cette méthode, le paramètre d'erreur arrive en seconde position.
    • result Any
    • error Error

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

Fonctionne comme executeJavaScript mais en évaluant le scripts dans un contexte isolé.

Notez que lorsque l'exécution du script échoue, la promesse retournée ne sera pas rejetée et le result sera undefined. Ceci est dû au fait que Chromium n' achemine pas les erreurs d'univers isolés vers des univers étrangers.

webFrame.setIsolatedWorldInfo(worldId, info)

  • worldId Integer - L'ID de l'univers dans lequel exécuter le javascript, 0 étant l'univers par défaut et 999 celui utilisé par la fonctionnalité contextIsolation d'Electron. Les extensions Chrome se réservent la gamme [1 << 20, 1 << 29) pour les Ids. Sinon vous pouvez fournir n'importe quel entier.
  • Objet info
    • securityOrigin string (facultatif) - Origine de sécurité pour le monde isolé.
    • csp string (facultatif) - Politique de sécurité du contenu pour le monde isolé.
    • name string (facultatif) - Nom du monde isolé. Utile quand on utilise les devtools.

Définit l'origine de la sécurité, la politique de sécurité du contenu et le nom du monde isolé. Note: Si la csp est spécifié, alors le securityOrigin doit l'être également.

webFrame.getResourceUsage()

Retourne Object:

Retourne un objet décrivant les informations d'utilisation de caches de mémoire interne de Blink.

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

Cela va générer :

{
images: {
count: 22,
size: 2549,
liveSize: 2542
},
cssStyleSheets: { /* pareil qu'avec "images" */ },
xslStyleSheets: { /* pareil qu'avec "images" */ },
fonts: { /* pareil qu'avec "images" */ },
other: { /* pareil qu'avec "images" */ }
}

webFrame.clearCache()

Tente de libérer de la mémoire qui n'est plus utilisée (comme les images d'une navigation précédente).

Notez que le fait d'appeler aveuglément cette méthode rend probablement Electron plus lent car il devra remplir ces caches vides, vous ne devriez l'appeler que si un événement dans votre application s'est produit vous faisant penser que votre page utilise réellement moins mémoire (c. -à-d. que vous avez navigué d'une page super lourde à une page presque vide, et avez l'intention d'y rester).

webFrame.getFrameForSelector(selector)

  • selector string - Sélecteur CSS pour un élément de type frame.

Retourne WebFrame - L'élément de type frame dans le document de webFrame's et sélectionné par le selector, null sera retourné si selector ne sélectionne pas une frame ou la frame n'est pas dans le processus de rendu en cours.

webFrame.findFrameByName(name)

  • name string

Retourne WebFrame - Elément enfant de la webFrame dont le name est fourni, null sera retourné si si une telle frame n'existe pas ou si elle n'est pas dans le processus de rendu en cours.

webFrame.findFrameByRoutingId(routingId)

  • routingId Integer - Integer représentant l'id unique de la frame dans le processus de rendu courant. Les identifiants de routage peuvent être récupérés à partir des instances de WebFrame (webFrame.routingId) et sont également transmis par les événements spécifiques du WebContents de la frame (par ex. did-frame-navigate)

Retourne la WebFrame qui a le routingIdspécifié, null si non trouvé.

webFrame.isWordMisspelled(word)

  • word string - Le mot à vérifier.

Retourne boolean - true si le mot est considéré comme mal orthographié par le correcteur orthographique intégré, false si ce n'est pas le cas. Retourne toujours faux si aucun dictionnaire n'est chargé, .

webFrame.getWordSuggestions(word)

  • word string - Le mot mal orthographié.

Retourne string[] - Liste de mots suggérés pour un mot donné. Si le mot est orthographié correctement, le résultat sera vide.

Propriétés

webFrame.top Lecture seule

WebFrame | null représentant la frame de plus haut niveau dans la hiérarchie des frames à laquelle appartient webFrame, la propriété sera null si la frame de plus haut niveau n'est pas dans le processus de rendu courant.

webFrame.opener Lecture seule

WebFrame | null représentant la frame ayant ouvert webFrame, la propriété sera null s'il elle n'existe pas ou n'appartient pas au processus de rendu courant.

webFrame.parent Lecture seule

WebFrame | null représentant la frame parent de webFrame, la propriété sera null si webFrame est au niveau le plus haut ou si le parent n'est pas dans le processus de rendu en cours.

webFrame.firstChild Lecture seule

WebFrame | null représentant la première frame enfant de webFrame, la propriété sera null si webFrame n'a pas de fils ou si le premier enfant n'est pas dans le processus de rendu courant.

webFrame.nextSibling Lecture seule

WebFrame | null représentant la prochaine frame soeur, la propriété sera null si webFrame est la dernière frame dans son parent ou si la frame soeur n'est pas dans le processus de rendu courant.

webFrame.routingId Lecture seule

Integer représentant l'id unique de la frame dans le processus de rendu actuel. Des instances distinctes de WebFrameMain faisant référence à la même frame sous-jacente auront le même routingId.