类型
此类型的值是对象。它们包含以下属性:
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。
扩展程序示例
浏览器兼容性
加载中…