WebEngineScript QML Type
允许在 JavaScript 引擎中以编程方式注入脚本。更多
Import Statement: | import QtWebEngine |
Since: | QtWebEngine 1.1 |
In C++: | QWebEngineScript |
属性
- injectionPoint : enumeration
- name : string
- runsOnSubFrames : bool
- sourceCode : string
- sourceUrl : url
- worldId : enumeration
详细说明
通过 WebEngineScript 类型,可以在加载网页内容的过程中,根据injectionPoint 确定的不同点,在 JavaScript 引擎中以编程方式注入所谓的用户脚本。
脚本既可以在主 JavaScript世界中与来自网页内容的其他 JavaScript 一起执行,也可以在自己的独立世界中执行。虽然可以从任何世界访问页面的 DOM,但在一个世界中定义的函数的 JavaScript 变量却不能从另一个世界访问。worldId 属性为此提供了一些预定义 ID。
支持以下Greasemonkey属性:@exclude
,@include
,@name
,@match
, 和@run-at
。
使用WebEngineScriptCollection 可访问附加到网络视图的脚本列表。
属性文档
injectionPoint : enumeration |
加载过程中执行脚本的点。默认值为Deferred
。
常量 | 说明 |
---|---|
WebEngineScript.DocumentCreation | 脚本将在文档创建后立即执行。这不适合任何 DOM 操作。 |
WebEngineScript.DocumentReady | 脚本将在 DOM 就绪后立即运行。这相当于 JavaScript 中的DOMContentLoaded 事件触发。 |
WebEngineScript.Deferred | 脚本将在页面加载完成或文档就绪 500 毫秒后运行,以先到者为准。 |
name : string |
脚本名称。可用于从WebEngineScriptCollection.find 方法中检索特定脚本。
runsOnSubFrames : bool |
如果脚本在页面的每一帧都执行,则将此属性设为true
;如果只在主帧运行,则将此属性设为false
。默认值为false
。
sourceUrl : url |
该属性包含用户脚本的远程源代码位置(如果有)。
与sourceCode 不同,该属性允许引用尚未加载到内存中的用户脚本,例如存储在磁盘上的用户脚本。
设置该属性将更改脚本的sourceCode 。
注意: 目前只支持基于文件的源代码。
另请参阅 sourceCode 。
worldId : enumeration |
定义脚本在哪个孤立世界中执行的世界 ID。
常量 | 说明 |
---|---|
WebEngineScript.MainWorld | 网页内容使用的世界。在某些情况下,它可用于为网页内容提供自定义功能。 |
WebEngineScript.ApplicationWorld | 默认的孤立世界用于 JavaScript 实现的应用层功能。 |
WebEngineScript.UserWorld | 如果应用程序没有使用更多世界,用户设置的脚本将使用的第一个孤立世界。根据经验,如果该功能是向应用程序用户公开的,那么每个脚本都应该有自己的独立世界。 |
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.