scripting.registerContentScripts()

註冊一個或多個內容指令碼。

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

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

語法

js
await browser.scripting.registerContentScripts(
  scripts         // array
)

引數

scripts

scripting.RegisteredContentScript陣列。要註冊的指令碼列表。

返回值

一個 Promise,在沒有錯誤時會解析(不帶引數),在出現錯誤時會被拒絕。指令碼解析和檔案驗證期間可能會發生錯誤,或者如果指定的 ID 已存在。發生錯誤時,不會註冊任何指令碼。

示例

此示例註冊一個內容指令碼,該指令碼注入檔案 "script.js"

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

try {
  await browser.scripting.registerContentScripts([script]);
} catch (err) {
  console.error(`failed to register content scripts: ${err}`);
}

瀏覽器相容性

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