PySide6.QtWebEngineCore.QWebEngineScript¶
- class QWebEngineScript¶
QWebEngineScript
类封装了一个 JavaScript 程序。更多…概要¶
属性¶
方法¶
def
__init__()
def
injectionPoint()
def
name()
def
__ne__()
def
__eq__()
def
setName()
def
setSourceCode()
def
setSourceUrl()
def
setWorldId()
def
sourceCode()
def
sourceUrl()
def
swap()
def
worldId()
注意
本文档可能包含从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¶
- property runsOnSubFramesᅟ: bool¶
- Access functions:
- property sourceCodeᅟ: str¶
- Access functions:
- Access functions:
- property worldIdᅟ: int¶
- Access functions:
- __init__()¶
构造一个空脚本。
- __init__(other)
- Parameters:
其他 –
QWebEngineScript
使用
other
的内容构建用户脚本。- injectionPoint()¶
- Return type:
返回脚本将在加载过程中的哪个点执行。默认值为
Deferred
。另请参阅
属性
injectionPointᅟ
的获取器。- name()¶
- Return type:
字符串
返回脚本的名称。可用于从
QWebEngineScriptCollection
中检索特定脚本。获取属性
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
。另请参阅
属性
runsOnSubFramesᅟ
的获取器。- setInjectionPoint(p)¶
- Parameters:
p –
InjectionPoint
设置执行脚本的点为
p
。属性
injectionPointᅟ
的设置器。- setName(scriptName)¶
- Parameters:
scriptName – 字符串
将脚本名称设置为
scriptName
。另请参阅
属性
nameᅟ
的设置器。- setRunsOnSubFrames(on)¶
- Parameters:
on – 布尔值
如果
on
返回true
,则在主框架之外的子框架上执行脚本。另请参阅
属性
runsOnSubFramesᅟ
的设置器。- setSourceCode(scriptSource)¶
- Parameters:
scriptSource – str
将脚本源设置为
scriptSource
。另请参阅
属性
sourceCodeᅟ
的设置器。设置用户脚本的远程源位置为
url
。与
setSourceCode()
不同,此函数允许引用尚未加载到内存中的用户脚本,例如,当脚本存储在磁盘上时。设置此值将更改脚本的
sourceCode
。属性
sourceUrlᅟ
的设置器。- setWorldId(id)¶
- Parameters:
id – int
在运行此脚本时,将隔离世界的ID设置为
id
。必须在
0
和256
之间。另请参阅
属性
worldIdᅟ
的设置器。- sourceCode()¶
- Return type:
字符串
返回脚本的源。
另请参阅
属性
sourceCodeᅟ
的获取器。返回用户脚本的远程源位置(如果有的话)。
另请参阅
属性
sourceUrlᅟ
的获取器。- swap(other)¶
- Parameters:
其他 –
QWebEngineScript
将脚本的内容与
other
的内容交换。- worldId()¶
- Return type:
整数
返回定义脚本在哪个世界中执行的世界ID。
另请参阅
属性
worldIdᅟ
的获取器。