QWebEngineScript Class

QWebEngineScript クラスは JavaScript プログラムをカプセル化します。詳細...

Header: #include <QWebEngineScript>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore
In QML: WebEngineScript

パブリック型

enum InjectionPoint { DocumentCreation, DocumentReady, Deferred }
enum ScriptWorldId { MainWorld, ApplicationWorld, UserWorld }

パブリック関数

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

詳細説明

QWebEngineScript は、ウェブコンテンツのロード中に、injectionPoint() によって決定されるさまざまなポイントで、JavaScript エンジンにユーザースクリプトと呼ばれるものをプログラムで注入できるようにします。

スクリプトは、ウェブコンテンツから来る残りの JavaScript と一緒にメインの JavaScript の世界で実行することも、独自の分離された世界で実行することもできます。ページの DOM はどのワールドからもアクセスできますが、あるワールドで定義された関数の JavaScript 変数は、別のワールドからはアクセスできません。ScriptWorldId は、この目的のためにいくつかの定義済み ID を提供します。

以下のGreasemonkey属性は、Qt 5.8 以降でサポートされています:@exclude@include@name@match@run-at

QWebEnginePage::scripts() およびQWebEngineProfile::scripts() を使用して、1 つのページまたは同じプロファイルを共有する複数のページに関連付けられたスクリプトのコレクションにアクセスします。

スクリプト・インジェクションも参照してください

メンバ型ドキュメント

enum QWebEngineScript::InjectionPoint

この列挙型は、スクリプト注入のタイミングを記述します:

定数説明
QWebEngineScript::DocumentCreation2スクリプトは、ドキュメントが作成されるとすぐに実行されます。これは DOM 操作には適していません。
QWebEngineScript::DocumentReady1スクリプトは DOM の準備ができ次第実行されます。これは、JavaScriptでDOMContentLoaded イベントが発生するのと同じです。
QWebEngineScript::Deferred0スクリプトは、ページ読み込みが終了するか、ドキュメントがreadyになってから500ms後のどちらか早い時点で実行されます。

enum QWebEngineScript::ScriptWorldId

この列挙型は、ユーザースクリプトを異なるワールドに分離するために、あらかじめ定義されたワールドIDを提供します:

定数説明
QWebEngineScript::MainWorld0ページのウェブコンテンツが使用するワールド。特定のシナリオでウェブコンテンツにカスタム機能を公開するために有用です。
QWebEngineScript::ApplicationWorld1JavaScriptで実装されたアプリケーションレベルの機能に使用されるデフォルトの隔離された世界。
QWebEngineScript::UserWorld2アプリケーションがより多くのワールドを使用しない場合、ユーザーによって設定されたスクリプトによって使用される最初の隔離されたワールドです。経験則として、もしその機能がアプリケーションのユーザーに公開されるのであれば、個々のスクリプトはそれ自身の隔離された世界を持つべきでしょう。

メンバ関数ドキュメント

QWebEngineScript::QWebEngineScript()

NULLスクリプトを構築する。

QWebEngineScript::QWebEngineScript(const QWebEngineScript &other)

other の内容を使用してユーザースクリプトを構築します。

[noexcept] QWebEngineScript::~QWebEngineScript()

スクリプトを破棄します。

QWebEngineScript::InjectionPoint QWebEngineScript::injectionPoint() const

スクリプトが実行されるロードプロセスのポイントを返します。デフォルト値はQWebEngineScript::Deferred です。

注: プロパティ injectionPoint のゲッター関数です。

setInjectionPoint()も参照してください

QString QWebEngineScript::name() const

スクリプトの名前を返します。QWebEngineScriptCollection から特定のスクリプトを取得するのに便利です。

メモ: プロパティ name のゲッター関数。

setName() およびQWebEngineScriptCollection::find()も参照

bool QWebEngineScript::runsOnSubFrames() const

スクリプトがページ内のすべてのフレームで実行される場合はtrue を、メインフレームでのみ実行される場合はfalse を返します。

注: プロパティ runsOnSubFrames のゲッター関数です。

setRunsOnSubFrames()も参照してください

void QWebEngineScript::setInjectionPoint(QWebEngineScript::InjectionPoint p)

スクリプトを実行する時点をp に設定する。

備考: プロパティinjectionPoint に対するセッター関数。

injectionPoint() およびInjectionPointも参照して ください。

void QWebEngineScript::setName(const QString &scriptName)

スクリプト名をscriptName に設定する。

注: プロパティname のセッター関数。

name()も参照

void QWebEngineScript::setRunsOnSubFrames(bool on)

ontrue を返した場合、メインフレームに加えてサブフレームでもスクリプトを実行します。

注: プロパティrunsOnSubFrames に対するセッター関数。

runsOnSubFrames()も参照して ください。

void QWebEngineScript::setSourceCode(const QString &scriptSource)

スクリプトソースをscriptSource に設定します。

備考: プロパティsourceCode に対するセッター関数。

sourceCode()も参照して ください。

void QWebEngineScript::setSourceUrl(const QUrl &url)

ユーザ・スクリプトのリモート・ソースの場所をurl に設定します。

この関数は、setSourceCode() と異なり、ディスクに保存されている場合など、メモリにまだロードされていないユーザ・スクリプトを参照することができます。

この値を設定すると、スクリプトのsourceCode が変更されます。

注: 現時点では、ファイル・ベースのソースにのみ対応しています。

注: プロパティsourceUrl のセッター関数です。

sourceUrl() およびsetSourceCode()も参照して ください。

void QWebEngineScript::setWorldId(quint32 id)

このスクリプトを実行するときに、隔離された世界のワールド ID をid に設定します。

0256 の間でなければなりません。

注: プロパティworldId に対するセッター関数。

worldId()も参照してください

QString QWebEngineScript::sourceCode() const

スクリプトのソースを返す。

メモ: プロパティ sourceCode のゲッター関数。

setSourceCode()も参照

QUrl QWebEngineScript::sourceUrl() const

ユーザ・スクリプトのリモート・ソースの場所を返します(ある場合)。

注釈 プロパティ sourceUrl のゲッター関数。

setSourceUrl() も参照

[noexcept] void QWebEngineScript::swap(QWebEngineScript &other)

スクリプトの内容をother の内容と入れ替えます。

quint32 QWebEngineScript::worldId() const

スクリプトがどのワールドで実行されるかを定義するワールド ID を返す。

注: プロパティ worldId のゲッター関数。

setWorldId()も参照

bool QWebEngineScript::operator!=(const QWebEngineScript &other) const

スクリプトがother と等しくない場合はtrue を返し、そうでない場合はfalse を返す。

QWebEngineScript &QWebEngineScript::operator=(const QWebEngineScript &other)

スクリプトにother を代入する。

bool QWebEngineScript::operator==(const QWebEngineScript &other) const

スクリプトがother と等しい場合はtrue を返し、そうでない場合はfalse を返します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。