QWebEngineScript 类

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 启用编程方式注入所谓的 用户脚本 在 JavaScript 引擎中的不同点,确定通过 injectionPoint (),在 Web 内容加载期间。

脚本可以执行于主 JavaScript world ,来自 web 内容的其它 JavaScript,或在它们自己的独立世界。虽然页面的 DOM 可以被访问从任何世界,但在某一世界中定义的 JavaScript 函数变量是不能从另一世界访问的。 ScriptWorldId 为此目的提供了一些预定义 ID。

下列 Greasemonkey 属性从 Qt 5.8 起支持: @exclude , @include , @name , @match ,和 @run-at .

使用 QWebEnginePage::scripts () 和 QWebEngineProfile::scripts () 能访问与单个页面 (或共享同一 Profile 的多个页面) 关联的脚本集合。

另请参阅 脚本注入 .

成员类型文档编制

enum QWebEngineScript:: InjectionPoint

此枚举描述脚本注入的时间:

常量 描述
QWebEngineScript::DocumentCreation 2 创建文档后尽快执行脚本。这不适于任何 DOM 操作。
QWebEngineScript::DocumentReady 1 DOM 就绪后尽快运行脚本。这相当于 DOMContentLoaded 事件激发于 JavaScript 中。
QWebEngineScript::Deferred 0 当页面加载完成时,或文档就绪后 500 毫秒 (以先到的为准) 运行脚本。

enum QWebEngineScript:: ScriptWorldId

此枚举提供预定义世界 ID,用于把用户脚本隔离到不同世界中:

常量 描述
QWebEngineScript::MainWorld 0 由页面 Web 内容使用的世界。它可以是有用的在某些情景下把自定义功能暴露给 Web 内容。
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 .

注意: Getter function for property injectionPoint.

另请参阅 setInjectionPoint ().

QString QWebEngineScript:: name () const

返回脚本的名称。可能很有用,当检索特定脚本从 QWebEngineScriptCollection .

注意: Getter function for property name.

另请参阅 setName () 和 QWebEngineScriptCollection::find ().

bool QWebEngineScript:: runsOnSubFrames () const

返回 true 若脚本在页面每框架中执行,或 false 若它只运行于主框架。

注意: Getter function for property runsOnSubFrames.

另请参阅 setRunsOnSubFrames ().

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

把执行脚本的点设为 p .

注意: setter 函数对于特性 injectionPoint .

另请参阅 injectionPoint () 和 InjectionPoint .

void QWebEngineScript:: setName (const QString & scriptName )

把脚本名称设为 scriptName .

注意: setter 函数对于特性 name .

另请参阅 name ().

void QWebEngineScript:: setRunsOnSubFrames ( bool on )

在除主框架外的子框架中执行脚本若 on 返回 true .

注意: setter 函数对于特性 runsOnSubFrames .

另请参阅 runsOnSubFrames ().

void QWebEngineScript:: setSourceCode (const QString & scriptSource )

把脚本源设为 scriptSource .

注意: setter 函数对于特性 sourceCode .

另请参阅 sourceCode ().

void QWebEngineScript:: setSourceUrl (const QUrl & url )

Sets the remote source location of the user script to url .

不像 setSourceCode (), this function allows referring to user scripts that are not already loaded in memory, for instance, when stored on disk.

Setting this value will change the sourceCode of the script.

注意: At present, only file-based sources are supported.

注意: setter 函数对于特性 sourceUrl .

另请参阅 sourceUrl () 和 setSourceCode ().

void QWebEngineScript:: setWorldId ( quint32 id )

把隔离世界的世界 ID 设为 id 当运行此脚本时。

必须介于 0 and 256 .

注意: setter 函数对于特性 worldId .

另请参阅 worldId ().

QString QWebEngineScript:: sourceCode () const

返回脚本的源。

注意: Getter function for property sourceCode.

另请参阅 setSourceCode ().

QUrl QWebEngineScript:: sourceUrl () const

Returns the remote source location of the user script (if any).

注意: Getter function for property sourceUrl.

另请参阅 setSourceUrl ().

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

交换脚本的内容与内容为 other .

quint32 QWebEngineScript:: worldId () const

返回定义脚本在哪个世界中执行的世界 ID。

注意: Getter function for property worldId.

另请参阅 setWorldId ().

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

返回 true 若脚本不等于 other ,否则返回 false .

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

赋值 other 到脚本。

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

返回 true 若脚本等于 other ,否则返回 false .