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 的多个页面) 关联的脚本集合。
另请参阅 脚本注入 .
此枚举描述脚本注入的时间:
| 常量 | 值 | 描述 |
|---|---|---|
QWebEngineScript::DocumentCreation
|
2
|
创建文档后尽快执行脚本。这不适于任何 DOM 操作。 |
QWebEngineScript::DocumentReady
|
1
|
DOM 就绪后尽快运行脚本。这相当于
DOMContentLoaded
事件激发于 JavaScript 中。
|
QWebEngineScript::Deferred
|
0
|
当页面加载完成时,或文档就绪后 500 毫秒 (以先到的为准) 运行脚本。 |
此枚举提供预定义世界 ID,用于把用户脚本隔离到不同世界中:
| 常量 | 值 | 描述 |
|---|---|---|
QWebEngineScript::MainWorld
|
0
|
由页面 Web 内容使用的世界。它可以是有用的在某些情景下把自定义功能暴露给 Web 内容。 |
QWebEngineScript::ApplicationWorld
|
1
|
用于应用程序级 JavaScript 功能实现的默认隔离世界。 |
QWebEngineScript::UserWorld
|
2
|
由用户设置的脚本使用的第一隔离世界若应用程序不使用更多世界。根据经验,若将该功能暴露给应用程序用户,每个单独脚本应该都可能有其自己的隔离世界。 |
构造 null 脚本。
构造用户脚本使用内容来自 other .
[noexcept]
QWebEngineScript::
~QWebEngineScript
()
销毁脚本。
返回加载过程中脚本将要执行的位置。默认值为 QWebEngineScript::Deferred .
注意: Getter function for property injectionPoint.
另请参阅 setInjectionPoint ().
返回脚本的名称。可能很有用,当检索特定脚本从 QWebEngineScriptCollection .
注意: Getter function for property name.
另请参阅 setName () 和 QWebEngineScriptCollection::find ().
返回
true
若脚本在页面每框架中执行,或
false
若它只运行于主框架。
注意: Getter function for property runsOnSubFrames.
另请参阅 setRunsOnSubFrames ().
把执行脚本的点设为 p .
注意: setter 函数对于特性 injectionPoint .
另请参阅 injectionPoint () 和 InjectionPoint .
把脚本名称设为 scriptName .
注意: setter 函数对于特性 name .
另请参阅 name ().
在除主框架外的子框架中执行脚本若
on
返回
true
.
注意: setter 函数对于特性 runsOnSubFrames .
另请参阅 runsOnSubFrames ().
把脚本源设为 scriptSource .
注意: setter 函数对于特性 sourceCode .
另请参阅 sourceCode ().
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 ().
把隔离世界的世界 ID 设为 id 当运行此脚本时。
必须介于
0
and
256
.
注意: setter 函数对于特性 worldId .
另请参阅 worldId ().
返回脚本的源。
注意: Getter function for property sourceCode.
另请参阅 setSourceCode ().
Returns the remote source location of the user script (if any).
注意: Getter function for property sourceUrl.
另请参阅 setSourceUrl ().
[noexcept]
void
QWebEngineScript::
swap
(
QWebEngineScript
&
other
)
交换脚本的内容与内容为 other .
返回定义脚本在哪个世界中执行的世界 ID。
注意: Getter function for property worldId.
另请参阅 setWorldId ().
返回
true
若脚本不等于
other
,否则返回
false
.
赋值 other 到脚本。
返回
true
若脚本等于
other
,否则返回
false
.