QWebEngineScript Class
Die Klasse QWebEngineScript kapselt ein JavaScript-Programm. Mehr...
Kopfzeile: | #include <QWebEngineScript> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake: | QT += webenginecore |
In QML: | WebEngineScript |
Öffentliche Typen
enum | InjectionPoint { DocumentCreation, DocumentReady, Deferred } |
enum | ScriptWorldId { MainWorld, ApplicationWorld, UserWorld } |
Öffentliche Funktionen
QWebEngineScript() | |
QWebEngineScript(const QWebEngineScript &other) | |
~QWebEngineScript() | |
QWebEngineScript::InjectionPoint | injectionPoint() const |
QString | name() const |
bool | runsOnSubFrames() const |
void | setInjectionPoint(QWebEngineScript::InjectionPoint p) |
void | setName(const QString &scriptName) |
void | setRunsOnSubFrames(bool on) |
void | setSourceCode(const QString &scriptSource) |
void | setSourceUrl(const QUrl &url) |
void | setWorldId(quint32 id) |
QString | sourceCode() const |
QUrl | sourceUrl() const |
void | swap(QWebEngineScript &other) |
quint32 | worldId() const |
bool | operator!=(const QWebEngineScript &other) const |
QWebEngineScript & | operator=(const QWebEngineScript &other) |
bool | operator==(const QWebEngineScript &other) const |
Detaillierte Beschreibung
QWebEngineScript ermöglicht die programmatische Injektion von so genannten Benutzerskripten in die JavaScript-Engine an verschiedenen, durch injectionPoint() festgelegten Punkten während des Ladens von Webinhalten.
Skripte können entweder in der Haupt-JavaScript-Welt, zusammen mit dem restlichen JavaScript aus dem Webinhalt, oder in einer eigenen isolierten Welt ausgeführt werden. Während auf das DOM der Seite von jeder Welt aus zugegriffen werden kann, sind die JavaScript-Variablen einer Funktion, die in einer Welt definiert ist, nicht von einer anderen Welt aus zugänglich. ScriptWorldId bietet zu diesem Zweck einige vordefinierte IDs.
Die folgenden Greasemonkey-Attribute werden seit Qt 5.8 unterstützt: @exclude
, @include
, @name
, @match
, und @run-at
.
Verwenden Sie QWebEnginePage::scripts() und QWebEngineProfile::scripts(), um auf die Sammlung von Skripten zuzugreifen, die mit einer einzelnen Seite oder einer Reihe von Seiten mit demselben Profil verbunden sind.
Siehe auch Script Injection.
Dokumentation der Mitgliedstypen
enum QWebEngineScript::InjectionPoint
Diese Aufzählung beschreibt den Zeitpunkt der Skriptinjektion:
Konstante | Wert | Beschreibung |
---|---|---|
QWebEngineScript::DocumentCreation | 2 | Das Skript wird ausgeführt, sobald das Dokument erstellt wird. Dies ist für keine DOM-Operation geeignet. |
QWebEngineScript::DocumentReady | 1 | Das Skript wird ausgeführt, sobald das DOM bereit ist. Dies entspricht dem Auslösen des Ereignisses DOMContentLoaded in JavaScript. |
QWebEngineScript::Deferred | 0 | Das Skript wird ausgeführt, wenn das Laden der Seite abgeschlossen ist, oder 500 ms nachdem das Dokument bereit ist, je nachdem, was zuerst eintritt. |
enum QWebEngineScript::ScriptWorldId
Diese Aufzählung bietet vordefinierte Welt-IDs, um Benutzerskripte in verschiedene Welten zu isolieren:
Konstante | Wert | Beschreibung |
---|---|---|
QWebEngineScript::MainWorld | 0 | Die Welt, die von den Web-Inhalten der Seite verwendet wird. Sie kann nützlich sein, um in bestimmten Szenarien benutzerdefinierte Funktionen für Webinhalte bereitzustellen. |
QWebEngineScript::ApplicationWorld | 1 | Die isolierte Standardwelt, die für in JavaScript implementierte Funktionen auf Anwendungsebene verwendet wird. |
QWebEngineScript::UserWorld | 2 | Die erste isolierte Welt, die von Skripten verwendet wird, die von den Benutzern festgelegt wurden, wenn die Anwendung nicht von weiteren Welten Gebrauch macht. Als Faustregel gilt, dass jedes einzelne Skript seine eigene isolierte Welt erhalten sollte, wenn diese Funktionalität für die Benutzer der Anwendung zugänglich ist. |
Dokumentation der Mitgliedsfunktionen
QWebEngineScript::QWebEngineScript()
Konstruiert ein Null-Skript.
QWebEngineScript::QWebEngineScript(const QWebEngineScript &other)
Konstruiert ein Benutzerskript mit dem Inhalt von other.
[noexcept]
QWebEngineScript::~QWebEngineScript()
Zerstört ein Skript.
QWebEngineScript::InjectionPoint QWebEngineScript::injectionPoint() const
Gibt den Punkt im Ladevorgang zurück, an dem das Skript ausgeführt werden soll. Der Standardwert ist QWebEngineScript::Deferred.
Hinweis: Getter-Funktion für die Eigenschaft injectionPoint.
Siehe auch setInjectionPoint().
QString QWebEngineScript::name() const
Gibt den Namen des Skripts zurück. Kann nützlich sein, um ein bestimmtes Skript aus einer QWebEngineScriptCollection abzurufen.
Hinweis: Getter-Funktion für die Eigenschaft name.
Siehe auch setName() und QWebEngineScriptCollection::find().
bool QWebEngineScript::runsOnSubFrames() const
Gibt true
zurück, wenn das Skript in jedem Frame der Seite ausgeführt wird, oder false
, wenn es nur für den Hauptframe ausgeführt wird.
Hinweis: Getter-Funktion für die Eigenschaft runsOnSubFrames.
Siehe auch setRunsOnSubFrames().
void QWebEngineScript::setInjectionPoint(QWebEngineScript::InjectionPoint p)
Legt den Punkt fest, an dem das Skript ausgeführt werden soll p.
Hinweis: Setter-Funktion für die Eigenschaft injectionPoint.
Siehe auch injectionPoint() und InjectionPoint.
void QWebEngineScript::setName(const QString &scriptName)
Setzt den Skriptnamen auf scriptName.
Hinweis: Setter-Funktion für die Eigenschaft name.
Siehe auch name().
void QWebEngineScript::setRunsOnSubFrames(bool on)
Führt das Skript zusätzlich zum Hauptrahmen auf Unterrahmen aus, wenn on true
zurückgibt.
Hinweis: Setter-Funktion für die Eigenschaft runsOnSubFrames.
Siehe auch runsOnSubFrames().
void QWebEngineScript::setSourceCode(const QString &scriptSource)
Setzt die Skriptquelle auf scriptSource.
Hinweis: Setter-Funktion für die Eigenschaft sourceCode.
Siehe auch sourceCode().
void QWebEngineScript::setSourceUrl(const QUrl &url)
Setzt den entfernten Quellort des Benutzerskripts auf url.
Im Gegensatz zu setSourceCode() kann mit dieser Funktion auf Benutzerskripte verwiesen werden, die noch nicht in den Speicher geladen sind, z. B. wenn sie auf der Festplatte gespeichert sind.
Wenn Sie diesen Wert setzen, ändert sich die sourceCode des Skripts.
Hinweis: Zurzeit werden nur dateibasierte Quellen unterstützt.
Hinweis: Setter-Funktion für die Eigenschaft sourceUrl.
Siehe auch sourceUrl() und setSourceCode().
void QWebEngineScript::setWorldId(quint32 id)
Setzt die Welt-ID der isolierten Welt auf id, wenn dieses Skript ausgeführt wird.
Muss zwischen 0
und 256
liegen.
Hinweis: Setter-Funktion für die Eigenschaft worldId.
Siehe auch worldId().
QString QWebEngineScript::sourceCode() const
Gibt die Quelle des Skripts zurück.
Hinweis: Getter-Funktion für die Eigenschaft sourceCode.
Siehe auch setSourceCode().
QUrl QWebEngineScript::sourceUrl() const
Gibt den entfernten Quellort des Benutzerskripts zurück (falls vorhanden).
Hinweis: Getter-Funktion für die Eigenschaft sourceUrl.
Siehe auch setSourceUrl().
[noexcept]
void QWebEngineScript::swap(QWebEngineScript &other)
Tauscht den Inhalt des Skripts mit dem Inhalt von other aus.
quint32 QWebEngineScript::worldId() const
Gibt die Welt-ID zurück, die definiert, in welcher Welt das Skript ausgeführt wird.
Hinweis: Getter-Funktion für die Eigenschaft worldId.
Siehe auch setWorldId().
bool QWebEngineScript::operator!=(const QWebEngineScript &other) const
Gibt true
zurück, wenn das Skript nicht gleich other ist, andernfalls gibt es false
zurück.
QWebEngineScript &QWebEngineScript::operator=(const QWebEngineScript &other)
Weist dem Skript other zu.
bool QWebEngineScript::operator==(const QWebEngineScript &other) const
Gibt true
zurück, wenn das Skript gleich other ist, andernfalls gibt es false
zurück.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.