declarativeNetRequest.RuleCondition
确定规则是否与请求匹配的条件的详细信息,作为 declarativeNetRequest.Rule
的 condition
属性。
类型
此类型的值为对象。它们包含以下属性
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"
之外的所有资源类型。 tabIds
可选-
一个
number
数组。该规则应匹配的tabs.Tab
。id
列表。tabs.TAB_ID_NONE
的 ID 匹配不源自选项卡的请求。不允许使用空列表。仅支持会话范围规则。 excludedTabIds
可选-
一个
number
类型的数组。规则不应匹配的tabs.Tab
.id
列表。tabs.TAB_ID_NONE
的ID排除不源自选项卡的请求。仅会话范围规则支持。 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
匹配。
规范域名
示例扩展
浏览器兼容性
BCD 表格仅在浏览器中加载