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