events.UrlFilter
描述用于过滤 URL 的各种条件。如果过滤器属性中指定的全部条件都与 URL 匹配,则该过滤器匹配。过滤器通常以 UrlFilter 数组的形式提供给 API 方法。例如,webNavigation 监听器可以添加一个过滤器,该过滤器是一个包含单个 url
属性的对象,该属性是一个 UrlFilter 数组,例如 {url:[UrlFilter, UrlFilter, …]}
。如果 UrlFilter 数组中的任何过滤器匹配,则将其视为与该数组匹配。实际上,单个过滤器中指定的条件是按 AND 连接的,而数组中所有单独的过滤器是按 OR 连接的。
所有条件都区分大小写。
类型
此类型的值为对象。它们包含以下属性
但是,请注意,最后两种模式不会匹配主机名的最后一个组件,因为主机名末尾没有添加隐式点。例如,"org."
将匹配 https://borg.com
但不匹配 https://example.org
。要匹配这些模式,请使用 hostSuffix
。
hostContains
可选-
字符串
。如果 URL 的 主机名(不含协议或端口 – 请参阅schemes
和ports
)包含给定的字符串,则匹配。- 要测试主机名组件是否以“foo”开头,请使用
".foo"
。这将匹配www.foobar.com
和foo.com
,因为主机名开头添加了一个隐式点。 - 要测试主机名组件是否以“foo”结尾,请使用
"foo."
。 - 要测试主机名组件是否完全匹配“foo”,请使用
".foo."
。
- 要测试主机名组件是否以“foo”开头,请使用
hostEquals
可选-
字符串
。如果 URL 的主机名等于指定的字符串,则匹配。- 示例:
"www.example.com"
匹配http://www.example.com
和https://www.example.com/
,但不匹配http://example.com/
。
- 示例:
hostPrefix
可选-
字符串
。如果 URL 的主机名以指定的字符串开头,则匹配。 hostSuffix
可选-
字符串
。如果 URL 的主机名以指定的字符串结尾,则匹配。- 示例:
".example.com"
匹配http://www.example.com/
,但不匹配http://example.com/
。 - 示例:
"example.com"
匹配http://www.example.com/
和http://fakeexample.com/
。
- 示例:
pathContains
可选-
字符串
。如果 URL 的路径段包含指定的字符串,则匹配。 pathEquals
可选-
字符串
。如果 URL 的路径段等于指定的字符串,则匹配。 pathPrefix
可选-
字符串
。如果 URL 的路径段以指定的字符串开头,则匹配。 pathSuffix
可选-
字符串
。如果 URL 的路径段以指定的字符串结尾,则匹配。 queryContains
可选-
字符串
。如果 URL 的查询段包含指定的字符串,则匹配。 queryEquals
可选-
字符串
。如果 URL 的查询段等于指定的字符串,则匹配。 queryPrefix
可选-
字符串
。如果 URL 的查询段以指定的字符串开头,则匹配。 querySuffix
可选-
字符串
。如果 URL 的查询段以指定的字符串结尾,则匹配。 urlContains
可选-
字符串
。如果 URL(不含片段标识符)包含指定的字符串,则匹配。如果端口号与默认端口号匹配,则从 URL 中删除端口号。 urlEquals
可选-
字符串
。如果 URL(不含片段标识符)等于指定的字符串,则匹配。如果端口号与默认端口号匹配,则从 URL 中删除端口号。 urlMatches
可选-
字符串
。如果 URL(不含片段标识符)与指定的 正则表达式 匹配,则匹配。如果端口号与默认端口号匹配,则从 URL 中删除端口号。- 例如:
urlMatches: "^[^:]*:(?://)?(?:[^/]*\\.)?mozilla\\.org/.*$"
匹配https://mozilla.org/
、https://mdn.org.cn/
,但不匹配https://developer.fakemozilla.org/
。
- 例如:
originAndPathMatches
可选-
字符串
。如果 URL 不含查询段和片段标识符,并且与指定的 正则表达式 匹配,则匹配。如果端口号与默认端口号匹配,则从 URL 中删除端口号。 urlPrefix
可选-
字符串
。如果 URL(不含片段标识符)以指定的字符串开头,则匹配。如果端口号与默认端口号匹配,则从 URL 中删除端口号。- 示例:
"https://developer"
匹配https://mdn.org.cn/
和https://developers.facebook.com/
。
- 示例:
urlSuffix
可选-
字符串
。如果 URL(不含片段标识符)以指定的字符串结尾,则匹配。如果端口号与默认端口号匹配,则从 URL 中删除端口号。请注意,主机后面会添加一个隐式正斜杠“/”,因此"com/"
匹配https://example.com
,但"com"
不匹配。 schemes
可选-
字符串
数组。如果 URL 的方案等于数组中指定的任何方案,则匹配。因为方案始终转换为小写,所以应始终以小写形式给出,否则将永远不会匹配。- 示例:
["https"]
只会匹配 HTTPS URL。
- 示例:
ports
可选-
整数
或(整数
数组)数组。一个可能包含整数和整数数组的数组。整数被解释为端口号,而整数数组被解释为端口范围。如果 URL 的端口号与任何端口号匹配或包含在任何范围内,则匹配。- 例如:
[80, 443, [1000, 1200]]
匹配端口 80、443 和 1000-1200 范围内的所有请求。
- 例如:
浏览器兼容性
BCD 表格仅在浏览器中加载
注意:此 API 基于 Chromium 的 chrome.events
API。此文档源自 Chromium 代码中的 events.json
。