QWebEngineScript Class
QWebEngineScript クラスは JavaScript プログラムをカプセル化します。詳細...
ヘッダー | #include <QWebEngineScript> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake | QT += webenginecore |
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 | スクリプトは、ページの読み込みが終わるか、ドキュメントが準備できてから500ms後のどちらか早い時点で実行されます。 |
enum QWebEngineScript::ScriptWorldId
この列挙型は、ユーザースクリプトを異なるワールドに分離するための、あらかじめ定義されたワールドIDを提供する:
定数 | 値 | 説明 |
---|---|---|
QWebEngineScript::MainWorld | 0 | ページのウェブコンテンツが使用するワールド。特定のシナリオでウェブコンテンツにカスタム機能を公開するために有用です。 |
QWebEngineScript::ApplicationWorld | 1 | JavaScriptで実装されたアプリケーションレベルの機能に使用されるデフォルトの隔離された世界。 |
QWebEngineScript::UserWorld | 2 | アプリケーションがより多くのワールドを使用しない場合、ユーザーによって設定されたスクリプトによって使用される最初の隔離されたワールドです。経験則として、もしその機能がアプリケーションのユーザーに公開されるのであれば、個々のスクリプトはおそらくそれ自身の隔離された世界を得るべきである。 |
メンバー関数ドキュメント
QWebEngineScript::QWebEngineScript()
ヌル・スクリプトを構築します。
QWebEngineScript::QWebEngineScript(const QWebEngineScript &other)
other の内容を使ってユーザースクリプトを構築する。
[noexcept]
QWebEngineScript::~QWebEngineScript()
台本を破壊する。
QWebEngineScript::InjectionPoint QWebEngineScript::injectionPoint() const
スクリプトが実行されるロードプロセスのポイントを返します。デフォルト値はQWebEngineScript::Deferred です。
注意: プロパティ injectionPoint のゲッター関数です。
setInjectionPoint()も参照してください 。
QString QWebEngineScript::name() const
スクリプトの名前を返す。QWebEngineScriptCollection から特定のスクリプトを取り出すのに便利です。
注意: プロパティ名のゲッター関数です。
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
を返す。
© 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.