scripting.registerContentScripts()

注册一个或多个内容脚本。

备注: 该方法在 Chrome 和 Firefox 101 的 Manifest V3 或更高版本中可用。在 Firefox 102+ 中,你也可以在 Manifest V2 中使用该方法。

要使用该方法,你必须取得 "scripting" 权限以及页面的 URL 权限,可以是明确的主机权限,也可以使用 activeTab 权限

这是一个返回 Promise 的异步函数。

语法

js
await browser.scripting.registerContentScripts(
  scripts         // 数组
)

参数

scripts

scripting.RegisteredContentScript 数组(array)。要注册的脚本的列表。

返回值

不带参数兑现的 Promise,当有错误发生时该 promise 将被拒绝。错误可能发生在脚本解析和文件验证期间,或者在指定的 ID 不存在时。若发生错误则不会注册任何脚本。

示例

该示例注册一个注入文件 "script.js" 的内容脚本:

js
const aScript = {
  id: "a-script",
  js: ["script.js"],
  matches: ["https://example.com/*"],
};

try {
  await browser.scripting.registerContentScripts([aScript]);
} catch (err) {
  console.error(`无法注册内容脚本:${err}`);
}

浏览器兼容性

BCD tables only load in the browser

备注: 该 API 基于 Chromium 的 chrome.scripting API。