scripting.updateContentScripts()

更新已注册的内容脚本。如果脚本解析和文件验证期间出现错误,或者指定的 ID 不存在,则不会更新任何脚本。

注意:此方法在 Chrome 的清单 V3 或更高版本以及 Firefox 101 中可用。在 Firefox 102 及更高版本中,此方法在清单 V2 中也可用。

要使用此 API,您必须拥有 "scripting" 权限以及页面 URL 的权限,无论是作为 主机权限显式指定,还是使用 activeTab 权限

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

语法

js
await browser.scripting.updateContentScripts(
  scripts         // object
)

参数

scripts

scripting.RegisteredContentScript数组。要更新的脚本的详细信息。除了id之外,所有属性都是可选的。

返回值

Promise,其结果为 scripting.RegisteredContentScript 的数组。如果发生任何错误,则 promise 将被拒绝。

示例

此示例通过将 allFrames 设置为 true 来更新使用 ID a-script 注册的内容脚本

js
try {
  await browser.scripting.registerContentScripts([
    {
      id: "a-script",
      js: ["script.js"],
      matches: ["*://example.org/*"],
    },
  ]);

  // Update content script registered before to allow execution
  // in all frames:
  await browser.scripting.updateContentScripts([
    {
      id: "a-script",
      allFrames: true,
    },
  ]);
} catch (err) {
  console.error(`failed to register or update content scripts: ${err}`);
}

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

注意:此 API 基于 Chromium 的 chrome.scripting API。