scripting.removeCSS()
移除一个通过调用 scripting.insertCSS()
注入的 CSS 样式表。
备注: 该方法在 Chrome 和 Firefox 101 的 Manifest V3 或更高版本中可用。在 Safari 和 Firefox 102+ 中,该方法也在 Manifest V2 中可用。
要使用该方法,你必须取得 "scripting"
权限以及页面的 URL 权限,可以是明确的主机权限,也可以使用 activeTab 权限。
这是一个返回 Promise
的异步函数。
语法
await browser.scripting.removeCSS(
details // 对象
)
参数
details
-
描述要移除的 CSS 以及从何处移除的对象。它包含以下属性:
css
可选-
string
。包含要注入的 CSS 的字符串。必须指定css
或files
其中之一,并且必须与通过scripting.insertCSS()
插入的样式表匹配。 files
可选-
string
数组(array
)。要注入的 CSS 文件相对于扩展的根目录的路径。必须指定files
或css
,并且必须与通过scripting.insertCSS()
插入的样式表匹配。 origin
可选-
string
。注入的样式的来源,可以是USER
或AUTHOR
。默认为AUTHOR
。必须与通过scripting.insertCSS()
插入的样式表的来源匹配。 target
-
scripting.InjectionTarget
。指定要从中移除 CSS 的目标。
返回值
Promise
,当所有 CSS 都被移除时将不带参数地兑现。如果发生了错误,则该 promise 将被拒绝。移除不存在的样式表的尝试将被忽略。
示例
该示例使用 scripting.insertCSS
添加了一些 CSS,然后在用户点击浏览器操作时将其移除:
// 假设之前已经使用以下代码注入了一些样式:
//
// await browser.scripting.insertCSS({
// target: {
// tabId: tab.id,
// },
// css: "* { background: #c0ffee }",
// });
//
// 当用户点击扩展按钮时,我们可以这样移除它:
browser.action.onClicked.addListener(async (tab) => {
try {
await browser.scripting.removeCSS({
target: {
tabId: tab.id,
},
css: "* { background: #c0ffee }",
});
} catch (err) {
console.error(`无法移除 CSS:${err}`);
}
});
浏览器兼容性
BCD tables only load in the browser
备注:
该 API 基于 Chromium 的 chrome.scripting
API。