userScripts.execute()
将用户脚本注入到目标上下文(例如,标签页或框架)中。
注意: 默认情况下,注入的脚本在 document_idle 时执行,或者在页面加载完成后立即执行。如果将 injectImmediately 属性设置为 true,脚本将立即注入,无需等待,即使页面仍在加载。
语法
let executeUserScript = browser.userScripts.execute(
injection, // array of objects
);
参数
injection-
一个对象数组,指定要注入哪些用户脚本、在何处注入以及如何注入。
injectImmediately可选-
boolean。如果设置为true,则尽快在目标上下文中触发注入。这并不能保证注入发生在页面加载完成之前,因为页面可能在脚本到达目标之前就已加载。 js-
arrayofuserScripts.ScriptSource。要注入到匹配页面的脚本。 目标-
一个定义脚本注入到的目标上下文的对象。
allFrames可选-
boolean。如果设置为true,脚本将注入到所有可用的框架中。默认为false,此时脚本仅注入到顶级框架。 documentIds可选-
arrayofstring。要注入到的文档的 ID。如果设置了frameIds,则不得指定此项。 frameIds可选-
arrayofinteger。要注入到的框架的 ID。如果设置了documentIds,则不得指定此项。 tabId-
integer。要注入到的标签页的 ID。
world可选-
userScripts.ExecutionWorld。用于运行脚本的执行环境。默认为"USER_SCRIPT"。 worldId可选-
string。脚本执行所在的用户脚本世界的 ID。仅在world为USER_SCRIPT或省略时有效。如果省略worldId,脚本将在默认的USER_SCRIPT世界("")中执行。带有下划线(_)前缀的值是保留的。最大长度为 256 个字符。一个世界可以被多个脚本用作其执行环境。要配置世界的行为,请在第一个脚本在该世界中执行之前,将其worldId传递给userScripts.configureWorld。
返回值
一个 Promise,成功后会 fulfilled 一个对象数组,描述注入的结果,这些对象具有以下属性:
documentId-
string。与注入关联的文档 ID。 error可选-
string。任何错误消息。此项与result互斥。 frameId-
integer。与注入关联的框架 ID。 result可选-
string。任何脚本注入的结果。此项与error互斥。
示例
await browser.userScripts.execute([
{
js: [{ code: "console.log('Hello world!');" }],
target: { tabId: 1 },
},
]);
浏览器兼容性
加载中…