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
。