QWebEngineScript 类

QWebEngineScript 类封装 JavaScript 程序。 更多...

头: #include <QWebEngineScript>
qmake: QT += webenginewidgets
Since: Qt 5.5

该类在 Qt 5.5 引入。

公共类型

enum InjectionPoint { DocumentCreation, DocumentReady, Deferred }
enum ScriptWorldId { MainWorld, ApplicationWorld, UserWorld }

公共函数

QWebEngineScript (const QWebEngineScript & other )
QWebEngineScript ()
QWebEngineScript & operator= (const QWebEngineScript & other )
~QWebEngineScript ()
QWebEngineScript::InjectionPoint injectionPoint () const
bool isNull () 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 setWorldId (quint32 id )
QString sourceCode () const
void swap (QWebEngineScript & other )
quint32 worldId () const
bool operator!= (const QWebEngineScript & other ) const
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 (const QWebEngineScript & other )

构造用户脚本使用内容来自 other .

QWebEngineScript:: QWebEngineScript ()

构造 null 脚本。

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

赋值 other 到脚本。

QWebEngineScript:: ~QWebEngineScript ()

销毁脚本。

QWebEngineScript::InjectionPoint QWebEngineScript:: injectionPoint () const

返回加载过程中脚本将要执行的位置。默认值为 QWebEngineScript::Deferred .

另请参阅 setInjectionPoint ().

bool QWebEngineScript:: isNull () const

返回 true 若脚本为 null;否则返回 false .

QString QWebEngineScript:: name () const

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

另请参阅 setName (), QWebEngineScriptCollection::findScript (),和 QWebEngineScriptCollection::findScripts ().

bool QWebEngineScript:: runsOnSubFrames () const

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

另请参阅 setRunsOnSubFrames ().

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

把执行脚本的点设为 p .

另请参阅 injectionPoint () 和 InjectionPoint .

void QWebEngineScript:: setName (const QString & scriptName )

把脚本名称设为 scriptName .

另请参阅 name ().

void QWebEngineScript:: setRunsOnSubFrames ( bool on )

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

另请参阅 runsOnSubFrames ().

void QWebEngineScript:: setSourceCode (const QString & scriptSource )

把脚本源设为 scriptSource .

另请参阅 sourceCode ().

void QWebEngineScript:: setWorldId ( quint32 id )

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

必须介于 0 and 256 .

另请参阅 worldId ().

QString QWebEngineScript:: sourceCode () const

返回脚本的源。

另请参阅 setSourceCode ().

void QWebEngineScript:: swap ( QWebEngineScript & other )

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

quint32 QWebEngineScript:: worldId () const

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

另请参阅 setWorldId ().

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

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

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

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