The QWebEngineScript class encapsulates a JavaScript program. 更多...
头: | #include <QWebEngineScript> |
qmake: | QT += webenginewidgets |
Since: | Qt 5.5 |
enum | InjectionPoint { DocumentCreation, DocumentReady, Deferred } |
enum | ScriptWorldId { MainWorld, ApplicationWorld, UserWorld } |
QWebEngineScript () | |
QWebEngineScript (const QWebEngineScript & other ) | |
~QWebEngineScript () | |
InjectionPoint | injectionPoint () const |
bool | isNull () const |
QString | name () const |
bool | runsOnSubFrames () const |
void | setInjectionPoint (InjectionPoint p ) |
void | setName (const QString & scriptName ) |
void | setRunsOnSubFrames (bool on ) |
void | setSourceCode (const QString & scriptSource ) |
void | setWorldId (quint32 id ) |
QString | sourceCode () 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 |
The QWebEngineScript class encapsulates a JavaScript program.
QWebEngineScript enables the programmatic injection of so called 用户脚本 在 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 .
销毁脚本。
返回加载过程中脚本将要执行的位置。默认值为 QWebEngineScript::Deferred .
另请参阅 setInjectionPoint ().
返回
true
若脚本为 null;否则返回
false
.
返回脚本的名称。可能很有用,当检索特定脚本从 QWebEngineScriptCollection .
另请参阅 setName (), QWebEngineScriptCollection::findScript (),和 QWebEngineScriptCollection::findScripts ().
返回
true
若脚本在页面每框架中执行,或
false
若它只运行于主框架。
另请参阅 setRunsOnSubFrames ().
把执行脚本的点设为 p .
另请参阅 injectionPoint () 和 InjectionPoint .
把脚本名称设为 scriptName .
另请参阅 name ().
在除主框架外的子框架中执行脚本若
on
返回
true
.
另请参阅 runsOnSubFrames ().
把脚本源设为 scriptSource .
另请参阅 sourceCode ().
把隔离世界的世界 ID 设为 id 当运行此脚本时。
另请参阅 worldId ().
返回脚本的源。
另请参阅 setSourceCode ().
交换脚本的内容与内容为 other .
返回定义脚本在哪个世界中执行的世界 ID。
另请参阅 setWorldId ().
返回
true
若脚本不等于
other
,否则返回
false
.
赋值 other 到脚本。
返回
true
若脚本等于
other
,否则返回
false
.