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 及之前版本中,数量限制为
注意: 在 Firefox 132 及更早版本中,动态规则在浏览器重启后有时不会生效,并且调用此 API 会被拒绝并返回错误(Firefox bug 1921353)。一个解决方法是在 declarative_net_request manifest 键中指定一个启用的静态规则集。规则集文件可以是一个空列表。
语法
js
let rulesUpdated = browser.declarativeNetRequest.updateDynamicRules(
options // object
);
参数
options-
一个包含要添加到动态规则集或从中删除的规则的详细信息的对象。
addRules可选-
一个
declarativeNetRequest.Rule数组。要添加的规则的详细信息。 removeRuleIds可选-
一个
number数组。要移除的规则的 ID。任何无效的 ID 都将被忽略。
返回值
一个 Promise。如果请求成功,Promise 将会以无参数的形式 fulfilled。如果请求失败,Promise 将会以错误消息的形式 rejected。
示例
扩展程序示例
浏览器兼容性
加载中…