QWebEngineScript类
QWebEngineScript类封装了一个JavaScript程序。 更多...
头文件 | #include <QWebEngineScript> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake | QT += webenginecore |
由下面实现 | WebEngineScript |
公共类型
枚举 | InjectionPoint { DocumentCreation, DocumentReady, Deferred } |
枚举 | 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允许在加载web内容时,根据injectionPoint()函数确定的不同点,程序化地向JavaScript引擎注入所谓“用户脚本”。
脚本可以执行在主JavaScript“世界”中,与来自web内容的其他JavaScript一起,或者在自己的隔离世界中。虽然可以从任何世界访问页面的DOM,但定义在某个世界中的一个函数的JavaScript变量不能从另一个世界访问。ScriptWorldId提供了一些预定义ID供此目的使用。
以下从Qt 5.8开始支持的Greasemonkey属性:@exclude
、@include
、@name
、@match
和@run-at
。
使用QWebEnginePage::scripts()和QWebEngineProfile::scripts()读取与单个页面或多个共享同一配置文件页面关联的脚本集合。
另见脚本注入。
成员类型文档
枚举QWebEngineScript::InjectionPoint
此枚举描述了脚本注入的时间
常量 | 值 | 描述 |
---|---|---|
QWebEngineScript::DocumentCreation | 2 | 脚本将在文档创建后立即执行。这不适用于任何DOM操作。 |
QWebEngineScript::DocumentReady | 1 | 脚本将在DOM就绪后立即运行。这相当于JavaScript中DOMContentLoaded 事件触发。 |
QWebEngineScript::Deferred | 0 | 脚本将在页面加载完成时运行,或文档准备就绪后500ms,哪个先到就以哪个为准。 |
枚举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。
注意:注入点属性的获取函数。
另请参阅: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::setWorldId(quint32 id)
当运行此脚本时,将隔离世界的世界 ID 设置为 id。
必须介于 0
和 256
之间。
注意:这是属性 worldId 的设置器函数。
另请参阅:worldId。
QString QWebEngineScript::sourceCode() const
返回脚本的源。
注意:这是属性 sourceCode 的获取器函数。
另请参阅:setSourceCode。
[noexcept]
void QWebEngineScript::swap(QWebEngineScript &other)
与 other 交换脚本的内容。
quint32 QWebEngineScript::worldId() const
返回定义脚本所在世界的世界 ID。
注意:这是属性 worldId 的获取器函数。
另请参阅:setWorldId。
bool QWebEngineScript::operator!=(const QWebEngineScript &other) const
如果脚本不等于 其他,则返回 true
,否则返回 false
。
QWebEngineScript &QWebEngineScript::operator=(const QWebEngineScript &other)
将 其他 赋值给脚本。
bool QWebEngineScript::operator==(const QWebEngineScript &other) const
如果脚本等于 其他,则返回 true
,否则返回 false
。
© 2024 Qt公司有限公司。本文件中包含的文档贡献归其各自所有者所有。本提供的文档受GNU自由文档许可证版本1.3的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰及其它国家/地区的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。