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。
示例
擴充套件程式示例
瀏覽器相容性
載入中…