tabs.removeCSS()

从页面中移除先前通过调用 tabs.insertCSS() 插入的 CSS。

备注:当使用 Manifest V3 或更高版本时,请使用 scripting.insertCSS()scripting.removeCSS() 来插入和移除 CSS。

这是一个返回 Promise 的异步函数。

语法

js
let removing = browser.tabs.removeCSS(
  tabId,           // 可选的整数
  details          // 对象
)

参数

  • tabId 可选

    • integer。要从中移除 CSS 的标签页的 ID。默认为当前窗口中的活动标签页。
  • details

    • : 一个描述要从页面中移除的 CSS 的对象。包含以下属性:

      • allFrames 可选
        • boolean。如果为 true,则从当前页面的所有框架中移除 CSS。如果为 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,则在嵌入的“about:blank”和“about:srcdoc”框架中移除 CSS,如果你的扩展有访问它们的父文档的权限。默认为 false

返回值

一个 Promise,当所有 CSS 都已被移除时其会被兑现且不带有参数。如果发生任何错误,promise 将会被拒绝并返回错误信息。

示例

以下示例使用 tabs.insertCSS 添加一些 CSS,然后当用户点击浏览器操作时再次将其移除:

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

function onError(error) {
  console.log(`发生错误:${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);
});

示例扩展

浏览器兼容性

BCD tables only load in the browser

备注:此 API 基于 Chromium 的 chrome.tabs API。本文档源自 Chromium 代码中的 tabs.json