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::DocumentCreation | 2 | スクリプトは、ドキュメントが作成されるとすぐに実行されます。これは DOM 操作には適していません。 |
QWebEngineScript::DocumentReady | 1 | スクリプトは DOM の準備ができ次第実行されます。これは、JavaScriptでDOMContentLoaded イベントが発生するのと同じです。 |
QWebEngineScript::Deferred | 0 | スクリプトは、ページ読み込みが終了するか、ドキュメントがreadyになってから500ms後のどちらか早い時点で実行されます。 |
enum QWebEngineScript::ScriptWorldId
この列挙型は、ユーザースクリプトを異なるワールドに分離するために、あらかじめ定義されたワールドIDを提供します:
定数 | 値 | 説明 |
---|---|---|
QWebEngineScript::MainWorld | 0 | ページのウェブコンテンツが使用するワールド。特定のシナリオでウェブコンテンツにカスタム機能を公開するために有用です。 |
QWebEngineScript::ApplicationWorld | 1 | JavaScriptで実装されたアプリケーションレベルの機能に使用されるデフォルトの隔離された世界。 |
QWebEngineScript::UserWorld | 2 | アプリケーションがより多くのワールドを使用しない場合、ユーザーによって設定されたスクリプトによって使用される最初の隔離されたワールドです。経験則として、もしその機能がアプリケーションのユーザーに公開されるのであれば、個々のスクリプトはそれ自身の隔離された世界を持つべきでしょう。 |
メンバ関数ドキュメント
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)
on がtrue
を返した場合、メインフレームに加えてサブフレームでもスクリプトを実行します。
注: プロパティ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 に設定します。
0
と256
の間でなければなりません。
注: プロパティ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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。