型別
此型別的值是物件。它們包含以下屬性:
domainType可選-
一個
string。指定網路請求是第一方還是第三方。如果請求與發起請求的文件或子文件屬於同一域,則該請求被視為第一方。否則,它被視為第三方。如果省略,則接受所有請求。可能的值為"firstParty"和"thirdParty"。 domains已棄用 可選-
一個
string陣列。請使用initiatorDomains代替。該規則僅匹配源自此域名列表的網路請求。 excludedDomains已棄用 可選-
一個
string陣列。請使用excludedInitiatorDomains代替。該規則不匹配源自此域名列表的網路請求。 initiatorDomains可選-
一個
string陣列。該規則僅匹配源自此域名列表的網路請求。如果省略列表,則該規則應用於來自所有域的請求。不允許空列表。應使用 規範域名。此匹配基於請求發起者,而非請求 URL。 excludedInitiatorDomains可選-
一個
string陣列。該規則不匹配源自此域名列表的網路請求。如果列表為空或被省略,則不排除任何域名。此選項優先於initiatorDomains。應使用 規範域名。此匹配基於請求發起者,而非請求 URL。 isUrlFilterCaseSensitive可選-
一個
boolean。指定urlFilter或regexFilter(任一指定)是否區分大小寫。雖然在 WECG issue 269 中,跨瀏覽器預設值false已經達成共識,但 Chrome 和 Safari(較舊)版本曾使用true。詳情請參見 瀏覽器相容性。 regexFilter可選-
一個
string。用於匹配網路請求 URL 的正則表示式。請注意:- 支援的格式不穩定,並且在不同瀏覽器之間存在差異,請參閱 WECG issue 344 中“DNR API 中的正則表示式 (regexFilter)” 以獲取詳細資訊。
- 只能指定
urlFilter或regexFilter中的一個。 regexFilter必須僅由 ASCII 字元組成。此內容將與 URL 進行匹配,其中主機名以 punycode 格式編碼(對於國際化域名),其他非 ASCII 字元則以 UTF-8 進行百分比編碼。例如:
requestDomains可選-
一個
string陣列。當域名匹配此列表中的某個域名時,規則才匹配網路請求。如果省略列表,則該規則應用於來自所有域的請求。不允許空列表。應使用 規範域名。 excludedRequestDomains可選-
一個
string陣列。當域名匹配此列表中的某個域名時,規則不匹配網路請求。如果列表為空或被省略,則不排除任何域名。此選項優先於requestDomains。應使用 規範域名。 requestMethods可選-
一個
string陣列。規則匹配的 HTTP 請求方法列表。不允許空列表。指定requestMethods規則條件也會排除非 HTTP(s) 請求,而指定excludedRequestMethods則不會。 excludedRequestMethods可選-
一個
string陣列。規則不匹配的請求方法列表。只能指定requestMethods和excludedRequestMethods中的一個。如果兩者均未指定,則匹配所有請求方法。 resourceTypes可選-
一個
declarativeNetRequest.ResourceType陣列。規則匹配的資源型別列表。不允許空列表。"allowAllRequests"規則必須指定此項,並且只能包含"sub_frame"和"main_frame"資源型別。 excludedResourceTypes可選-
一個
declarativeNetRequest.ResourceType陣列。規則不匹配的資源型別列表。只能指定resourceTypes和excludedResourceTypes中的一個。如果兩者均未指定,則阻止所有資源型別(除了"main_frame")。 responseHeaders可選-
一個
declarativeNetRequest.HeaderInfo陣列。如果請求與此列表中的任何響應頭條件匹配(如果指定),則規則匹配。 excludedResponseHeaders可選-
一個
declarativeNetRequest.HeaderInfo陣列。如果請求與此列表中的任何響應頭條件匹配(如果指定),則規則不匹配。如果同時指定了excludedResponseHeaders和responseHeaders,則excludedResponseHeaders屬性具有優先權。 tabIds可選-
一個
number陣列。規則應匹配的tabs.Tabid列表。ID 為tabs.TAB_ID_NONE的請求不源自標籤頁。不允許空列表。僅支援會話範圍的規則。 excludedTabIds可選-
一個
number陣列。規則不應匹配的tabs.Tabid列表。ID 為tabs.TAB_ID_NONE的請求不源自標籤頁。僅支援會話範圍的規則。 urlFilter可選-
一個
string。與網路請求 URL 匹配的模式。支援的構造:*:萬用字元:匹配任意數量的字元。|:左或右錨點:如果用於模式的任一端,則分別指定 URL 的開頭或結尾。||:域名錨點:如果用於模式的開頭,則指定 URL 的(子)域名的開頭。^:分隔符:匹配除字母、數字或_、-、.或%之外的任何字元。最後一個^也可能匹配 URL 的末尾而不是分隔符。
urlFilter由以下部分組成:(可選的左/域名錨點)+ 模式 +(可選的右錨點)。如果省略,則匹配所有 URL。不允許空字串。不允許以||*開頭的模式。請改用*。請注意:- 只能指定
urlFilter或regexFilter中的一個。 urlFilter必須僅由 ASCII 字元組成。此內容將與 URL 進行匹配,其中主機名以 punycode 格式編碼(對於國際化域名),其他非 ASCII 字元則以 UTF-8 進行百分比編碼。例如,當請求 URL 為http://abc.рф?q=ф時,urlFilter將與 URLhttp://abc.xn--p1ai/?q=%D1%84匹配。
規範域名
initiatorDomains、excludedInitiatorDomains、requestDomains 或 excludedRequestDomains 中指定的域名應符合以下要求:
- 允許子域名,例如“a.example.com”。
- 條目必須僅包含*小寫* ASCII 字元。
- 對於國際化域名,請使用 Punycode 編碼。
- IPv4 地址必須表示為由點分隔的 4 個數字。
- IPv6 地址應表示為其規範形式,並用方括號括起來。
要以程式設計方式生成 URL 的規範域名,請使用 URL API 並讀取其 hostname 屬性,即 new URL(url).hostname。
擴充套件程式示例
瀏覽器相容性
載入中…