scripting.updateContentScripts()

更新已註冊的內容指令碼。如果在指令碼解析和檔案驗證過程中出現錯誤,或者指定的 ID 不存在,則不會更新任何指令碼。

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

要呼叫此 API,您必須擁有 "scripting" 許可權。要執行注入的指令碼,擴充套件程式必須擁有頁面 URL 的許可權,可以是明確的 主機許可權,也可以是使用 activeTab 許可權

語法

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}`);
}

瀏覽器相容性

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