declarativeNetRequest.updateDynamicRules
修改扩展的动态规则集。首先移除 options.removeRuleIds
中列出的 ID 的规则,然后添加 options.addRules
中给出的规则。注意
- 此更新作为一个原子操作进行:要么所有指定的规则都添加和移除,要么返回错误。
- 这些规则在浏览器会话和扩展更新之间持久保存。
- 无法使用此函数移除作为扩展包的一部分指定的静态规则。
- 可以添加的动态规则数量有限
- 在 Safari 和 Chrome 119 及之前,限于
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
的值,用于动态规则和会话范围规则的总和。 - Firefox 127 及之前,限于
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
的值。 - 从 Chrome 120 和 Firefox 128 开始,限于
MAX_NUMBER_OF_DYNAMIC_RULES
的值。
- 在 Safari 和 Chrome 119 及之前,限于
语法
js
let updatedRules = browser.declarativeNetRequest.updateDynamicRules(
options // object
);
参数
options
-
包含要添加或删除的动态规则详细信息的对象。
addRules
可选-
一个
declarativeNetRequest.Rule
数组。要添加的规则的详细信息。 removeRuleIds
可选-
一个
number
数组。要移除的规则的 ID。任何无效的 ID 都会被忽略。
返回值
一个 Promise
如果请求成功,则承诺以无参数的方式实现。如果请求失败,则承诺以错误消息拒绝。
示例
示例扩展
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。