匹配模式是一种具有以下结构的网址,用于指定一组网址:
<scheme>://<host>/<path>
scheme:必须是以下各项之一,并使用英文冒号后跟双斜线 (://) 与模式的其余部分分隔:
- http
- https
- 通配符 *,仅与http或https匹配
- file
如需了解如何将内容脚本注入不受支持的架构(例如 about: 和 data:),请参阅在相关帧中注入。
host:主机名 (www.example.com)。主机名前面的 * 用于匹配子网域 (*.example.com),或者仅使用通配符 *。
  - 如果您在主机模式中使用通配符,则通配符必须是第一个字符或唯一字符,并且必须紧跟英文句点 (.) 或正斜线 (/)。
path:网址路径 (/example)。对于主机权限,路径是必需的,但会被忽略。应遵循惯例使用通配符 (/*)。
扩展程序在各种用例中使用匹配模式,包括:
- 注入内容脚本。
- 声明主机权限:除了自己的权限之外,某些 Chrome API 还需要声明主机权限。
- 授予对可通过网络访问的资源的访问权限。
- 允许使用 "externally_connectable.matches" 清单键发送和接收消息。
特殊情况
- "<all_urls>"
- 匹配以允许的架构开头的所有网址,包括有效的网址格式下列出的所有网址格式。由于此变更会影响所有托管方,因此使用该变更的扩展程序在 Chrome 应用商店中的审核可能需要更长时间。
- "file:///"
- 允许您的扩展程序在本地文件上运行。此模式要求用户手动授予访问权限。请注意,这种情况下需要使用三个斜线,而不是两个。
- 本地主机网址和 IP 地址
- 如需在开发期间匹配任何 localhost 端口,请使用 http://localhost/*。对于 IP 地址,请在路径中指定地址和通配符,如http://127.0.0.1/*所示。您还可以使用http://*:*/*来匹配 localhost、IP 地址和任何端口。
- 顶级域名匹配模式
- Chrome 不支持顶级域名 (TLD) 的匹配模式。在各个顶级域名 (TLD) 内指定匹配模式,如 http://google.es/*和http://google.fr/*中所示。
示例格式
- https://*/*或- https://*/
- 匹配使用 https架构的所有网址。
- https://*/foo*
- 匹配任何主机上使用 https架构且路径以foo开头的网址。匹配项的示例包括https://example.com/foo/bar.html和https://www.google.com/foo。
- https://*.google.com/foo*bar
- 匹配使用 https架构且位于 google.com 主机上的所有网址,其路径以foo开头并以bar结尾。匹配项的示例包括https://www.google.com/foo/baz/bar和https://docs.google.com/foobar。
- file:///foo*
- 匹配路径以 foo开头的任何本地文件。匹配项的示例包括file:///foo/bar.html和file:///foo。
- http://127.0.0.1/*或- http://127.0.0.1/
- 匹配主机 127.0.0.1 上使用 http架构的所有网址。匹配项的示例包括http://127.0.0.1/和http://127.0.0.1/foo/bar.html。
- http://localhost/*
- 与任何 localhost 端口匹配。
- *://mail.google.com/或- *://mail.google.com/*
- 匹配以 http://mail.google.com或https://mail.google.com开头的所有网址。