class QWebEngineScript#

QWebEngineScript 类封装了一个 JavaScript 程序。 更多信息

摘要#

属性#

方法#

注意

此文档可能包含从 C++ 自动转换为 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告知我们。

详细说明#

QWebEngineScript 允许程序化地在加载网络内容的过程中,在不同的点(由 injectionPoint() 决定)向 JavaScript 引擎注入所谓的 用户脚本

脚本可以在主JavaScript 世界中执行,与来自网页内容的其余JavaScript一起,或者在自己的隔离世界中执行。虽然可以从任何世界访问页面DOM,但定义在一个世界中函数的JavaScript变量无法从另一个世界中访问。ScriptWorldId为此提供了几个预定义的ID。

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

使用scripts()scripts() 访问与单个页面或具有相同配置文件的多个页面关联的脚本集合。

另请参阅

脚本注入

class InjectionPoint#

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

常量

描述

QWebEngineScript.DocumentCreation

脚本将在文档创建时执行。这不适合任何DOM操作。

QWebEngineScript.DocumentReady

脚本将在DOM准备就绪时运行。这与JavaScript中触发DOMContentLoaded事件等价。

QWebEngineScript.Deferred

脚本将在页面加载完成时运行,或文档准备就绪后500毫秒,以先到者为准。

class ScriptWorldId#

(继承自 enum.IntEnum) 此枚举提供预定义的世界ID,用于将用户脚本隔离到不同的世界中

常量

描述

QWebEngineScript.MainWorld

页面的网页内容使用的世界。在某些场景中,它可以用来自定义功能暴露给网页内容。

QWebEngineScript.ApplicationWorld

JavaScript中实现的应用程序级别的默认隔离世界。

QWebEngineScript.UserWorld

如果应用程序未使用更多世界,则脚本由用户设置时使用的第一个隔离世界。作为经验法则,如果该功能暴露给应用程序用户,则每个单独的脚本可能都应该有自己的隔离世界。

注意

from __feature__ import true_property被使用时,可以直接使用属性,否则通过访问器函数。

property injectionPointᅟ: QWebEngineScript.InjectionPoint#
访问函数
属性 name : str#
访问函数
属性 runsOnSubFrames : bool#
访问函数
属性 sourceCode : str#
访问函数
属性 sourceUrl : QUrl#
访问函数
属性 worldId : int#
访问函数
__init__(other)#
参数:

otherQWebEngineScript

使用other的内容构建用户脚本。

__init__()

构建一个空脚本。

injectionPoint()#
返回类型:

InjectionPoint

返回脚本将在加载过程中的哪个点被执行。默认值为 Deferred

另请参阅

setInjectionPoint()

injectionPoint 属性的获取器。

name()#
返回类型:

str

返回脚本的名称。在从 QWebEngineScriptCollection 获取特定脚本时可能会有用。

另请参阅

setName() find()

属性 name 的获取器。

__ne__(other)#
参数:

otherQWebEngineScript

返回类型:

bool

如果脚本不等于 other,则返回 true,否则返回 false

__eq__(other)#
参数:

otherQWebEngineScript

返回类型:

bool

如果脚本等于 other,则返回 true,否则返回 false

runsOnSubFrames()#
返回类型:

bool

如果脚本在页面中的每个帧上执行,则返回 true,如果它只为主框架执行,则返回 false

另请参阅

setRunsOnSubFrames()

属性 runsOnSubFrames 的获取器。

setInjectionPoint(arg__1)#
参数:

arg__1InjectionPoint

将脚本执行的点设置为 p

属性 injectionPoint 的设置器。

setName(arg__1)#
参数:

arg__1 – str

将脚本名称设置为 scriptName

另请参阅

name()

属性 name 的设置器。

setRunsOnSubFrames(on)#
参数:

on – bool

如果 on 返回 true,则在主框架之外,在子框架上执行脚本。

另请参阅

runsOnSubFrames()

属性 runsOnSubFrames 的设置器。

setSourceCode(arg__1)#
参数:

arg__1 – str

将脚本源设置为 scriptSource

另请参阅

sourceCode()

属性 sourceCode 的设置器。

setSourceUrl(url)#
参数:

urlQUrl

另请参阅

sourceUrl()

属性 sourceUrl 的设置器。

setWorldId(arg__1)#
参数:

arg__1 – int

当运行此脚本时,将孤立世界的世界 ID 设置为 id

必须在 0256 之间。

另请参阅

worldId()

属性 worldId 的设置器。

sourceCode()#
返回类型:

str

返回脚本的源。

另请参阅

setSourceCode()

属性 sourceCode 的获取器。

sourceUrl()#
返回类型:

QUrl

另请参阅

setSourceUrl()

属性 sourceUrl 的获取器。

swap(other)#
参数:

otherQWebEngineScript

交换脚本内容与 other 的内容。

worldId()#
返回类型:

int

返回定义脚本执行世界的世界 ID。

另请参阅

setWorldId()

属性 worldId 的获取器。