scripting.removeCSS()
移除由调用 scripting.insertCSS()
注入的 CSS 样式表。
注意: 此方法在 Chrome 和 Firefox 101 中的 Manifest V3 或更高版本中可用。 在 Safari 和 Firefox 102 及更高版本中,此方法在 Manifest V2 中也可用。
要使用此 API,您必须具有 "scripting"
权限 以及对页面 URL 的权限,无论是作为 主机权限 显式指定,还是使用 activeTab 权限。
这是一个异步函数,它返回一个 Promise
。
语法
await browser.scripting.removeCSS(
details // object
)
参数
details
-
一个描述要移除的 CSS 及其移除位置的对象。它包含以下属性
css
可选-
string
. 一个包含要注入的 CSS 的字符串。必须指定css
或files
,并且必须与通过scripting.insertCSS()
插入的样式表匹配。 files
可选-
array
ofstring
. 要注入的 CSS 文件的路径,相对于扩展的根目录。必须指定files
或css
,并且必须与通过scripting.insertCSS()
插入的样式表匹配。 origin
可选-
string
. 注入的样式来源,可以是USER
或AUTHOR
。默认值为AUTHOR
。必须与通过scripting.insertCSS()
插入的样式表的来源匹配。 target
-
scripting.InjectionTarget
. 指定要移除 CSS 的目标的详细信息。
返回值
一个 Promise
,当所有 CSS 被移除时,它将以没有参数的方式完成。如果发生任何错误,则 promise 将被拒绝。尝试移除不存在的样式表将被忽略。
示例
此示例使用 scripting.insertCSS
添加一些 CSS,然后在用户单击浏览器操作时将其移除
// 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。