scripting.removeCSS()

移除由调用 scripting.insertCSS() 注入的 CSS 样式表。

注意: 此方法在 Chrome 和 Firefox 101 中的 Manifest V3 或更高版本中可用。 在 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() 插入的样式表的来源匹配。

target

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}`);
  }
});

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

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