scripting.removeCSS()

移除透過呼叫 scripting.insertCSS() 注入的 CSS 樣式表。

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

要使用此 API,您必須擁有 "scripting" 許可權,並且擁有頁面 URL 的許可權,該許可權可以明確地作為 主機許可權,或者使用 activeTab 許可權

這是一個非同步函式,返回一個 Promise

語法

js
await browser.scripting.removeCSS(
  details       // object
)

引數

details

一個物件,描述要移除的 CSS 以及從何處移除。它包含以下屬性:

css 可選

string。一個包含要注入的 CSS 的字串。必須指定 cssfiles 之一,並且必須與透過 scripting.insertCSS() 插入的樣式表匹配。

files 可選

array of string。要注入的 CSS 檔案路徑,相對於擴充套件程式的根目錄。必須指定 filescss 之一,並且必須與透過 scripting.insertCSS() 插入的樣式表匹配。

origin 可選

string。注入的樣式來源,可以是 USERAUTHOR。預設為 AUTHOR。必須與透過 scripting.insertCSS() 插入的樣式表的來源匹配。

目標

scripting.InjectionTarget。指定要從中移除 CSS 的目標的詳細資訊。

返回值

一個 Promise,在所有 CSS 都被移除後解析(不帶引數)。如果發生任何錯誤,promise 將被拒絕。嘗試移除不存在的樣式表將被忽略。

示例

此示例使用 scripting.insertCSS 新增一些 CSS,然後在使用者點選瀏覽器動作時再次將其移除。

js
// Assuming some style has been injected previously with the following code:
//
// await browser.scripting.insertCSS({
//   target: {
//     tabId: tab.id,
//   },
//   css: "* { background: #c0ffee }",
// });
//
// We can remove it when a user clicked an extension button like this:
browser.action.onClicked.addListener(async (tab) => {
  try {
    await browser.scripting.removeCSS({
      target: {
        tabId: tab.id,
      },
      css: "* { background: #c0ffee }",
    });
  } catch (err) {
    console.error(`failed to remove CSS: ${err}`);
  }
});

瀏覽器相容性

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