tabs.removeCSS()

從頁面中移除之前透過呼叫 tabs.insertCSS() 注入的 CSS。

注意:使用 Manifest V3 或更高版本時,請使用 scripting.insertCSS()scripting.removeCSS() 來插入和移除 CSS。

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

語法

js
let removing = browser.tabs.removeCSS(
  tabId,           // optional integer
  details          // object
)

引數

tabId 可選

integer。要從中移除 CSS 的選項卡的 ID。預設為當前視窗的活動選項卡。

details

一個描述要從頁面中移除的 CSS 的物件。它包含以下屬性:

allFrames 可選

boolean。如果為 true,則程式碼將從當前頁面的所有框架中移除。如果為 false,則程式碼僅從頂層框架中移除。預設為 false

code 可選

string。要移除的 CSS,以文字字串形式表示。這必須與之前使用 tabs.insertCSS() 插入頁面的 CSS 字串完全匹配。

cssOrigin 可選

string。這可以接受兩個值之一:“user”,用於使用者樣式表新增的 CSS;或“author”,用於作者樣式表新增的 CSS。如果此選項之前透過 tabs.insertCSS() 設定,則必須完全匹配。

file 可選

string。包含要移除的 CSS 的檔案的路徑。這必須與之前使用 tabs.insertCSS() 插入頁面的 CSS 檔案完全匹配。

frameId 可選

integer。要從中移除 CSS 的框架。預設為 0(頂級框架)。

matchAboutBlank 可選

boolean。如果為 true,則 CSS 將從嵌入的“about:blank”和“about:srcdoc”框架中移除,前提是您的擴充套件程式可以訪問其父文件。預設為 false

返回值

一個 Promise,當所有 CSS 都已移除時,它將以無引數的形式解析。如果發生任何錯誤,Promise 將以錯誤訊息被拒絕。

示例

此示例使用 tabs.insertCSS 新增一些 CSS,然後在使用者單擊瀏覽器操作時將其再次移除。

js
let css = "body { border: 20px dotted pink; }";

function onError(error) {
  console.log(`Error: ${error}`);
}

let insertingCSS = browser.tabs.insertCSS(2, { code: css });
insertingCSS.then(null, onError);

browser.browserAction.onClicked.addListener(() => {
  let removing = browser.tabs.removeCSS(2, { code: css });
  removing.then(null, onError);
});

擴充套件程式示例

瀏覽器相容性

注意:此 API 基於 Chromium 的 chrome.tabs API。本文件源自 Chromium 程式碼中的 tabs.json