scripting.removeCSS()
移除通过调用 scripting.insertCSS() 注入的 CSS 样式表。
注意:此方法在 Chrome 的 Manifest V3 或更高版本以及 Firefox 101 中可用。在 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可选-
arrayofstring。要注入的 CSS 文件路径,相对于扩展程序的根目录。必须指定files或css之一,并且必须与通过scripting.insertCSS()插入的样式表匹配。 origin可选-
string。注入的样式来源,可以是USER或AUTHOR。默认为AUTHOR。必须与通过scripting.insertCSS()插入的样式表的来源匹配。 目标-
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}`);
}
});
浏览器兼容性
加载中…
注意:此 API 基于 Chromium 的 chrome.scripting API。