PySide6.QtWebEngineCore.QWebEngineScript

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
Access functions:
property nameᅟ: str
Access functions:
property runsOnSubFramesᅟ: bool
Access functions:
property sourceCodeᅟ: str
Access functions:
property sourceUrlᅟ: QUrl
Access functions:
property worldIdᅟ: int
Access functions:
__init__()

构造一个空脚本。

__init__(other)
Parameters:

其他QWebEngineScript

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

injectionPoint()
Return type:

InjectionPoint

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

另请参阅

setInjectionPoint()

属性 injectionPointᅟ 的获取器。

name()
Return type:

字符串

返回脚本的名称。可用于从QWebEngineScriptCollection中检索特定脚本。

另请参阅

setName() find()

获取属性 nameᅟ 的Getter。

__ne__(other)
Parameters:

其他QWebEngineScript

Return type:

布尔

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

__eq__(other)
Parameters:

其他QWebEngineScript

Return type:

布尔

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

runsOnSubFrames()
Return type:

布尔

如果脚本在页面的每一帧上执行,则返回true,如果仅在主帧上运行,则返回false

另请参阅

setRunsOnSubFrames()

属性 runsOnSubFramesᅟ 的获取器。

setInjectionPoint(p)
Parameters:

pInjectionPoint

设置执行脚本的点为p

属性 injectionPointᅟ 的设置器。

setName(scriptName)
Parameters:

scriptName – 字符串

将脚本名称设置为 scriptName

另请参阅

name()

属性 nameᅟ 的设置器。

setRunsOnSubFrames(on)
Parameters:

on – 布尔值

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

另请参阅

runsOnSubFrames()

属性 runsOnSubFramesᅟ 的设置器。

setSourceCode(scriptSource)
Parameters:

scriptSource – str

将脚本源设置为 scriptSource

另请参阅

sourceCode()

属性 sourceCodeᅟ 的设置器。

setSourceUrl(url)
Parameters:

urlQUrl

设置用户脚本的远程源位置为 url

setSourceCode()不同,此函数允许引用尚未加载到内存中的用户脚本,例如,当脚本存储在磁盘上时。

设置此值将更改脚本的sourceCode

注意

目前,仅支持基于文件的来源。

属性 sourceUrlᅟ 的设置器。

setWorldId(id)
Parameters:

id – int

在运行此脚本时,将隔离世界的ID设置为id

必须在 0256 之间。

另请参阅

worldId()

属性 worldIdᅟ 的设置器。

sourceCode()
Return type:

字符串

返回脚本的源。

另请参阅

setSourceCode()

属性 sourceCodeᅟ 的获取器。

sourceUrl()
Return type:

QUrl

返回用户脚本的远程源位置(如果有的话)。

另请参阅

setSourceUrl()

属性 sourceUrlᅟ 的获取器。

swap(other)
Parameters:

其他QWebEngineScript

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

worldId()
Return type:

整数

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

另请参阅

setWorldId()

属性 worldIdᅟ 的获取器。