匹配模式(Match patterns)
一、匹配模式結(jié)構(gòu)
匹配模式是采用以下結(jié)構(gòu)的網(wǎng)址,用于指定一組網(wǎng)址:
<scheme>://<host>/<path>
1. scheme
必須是以下內(nèi)容之一,并使用雙斜線 (//) 與格式的其余部分分隔開:
httphttps- 通配符
*,僅與http或https匹配 file
2. host
主機(jī)名 (www.example.com)。
- 主機(jī)名前的
*(用于匹配子網(wǎng)域 (*.example.com)),或僅使用通配符*。 - 如果在主機(jī)模式中使用通配符,它必須是第一個或唯一字符,并且后面必須跟一個句點 (
.) 或正斜杠 (/)。
3. path
網(wǎng)址路徑 (/example)。
- 對于主機(jī)權(quán)限,必須提供路徑,但該路徑會被忽略。按照慣例,應(yīng)使用通配符 (
/*)。
二、特殊匹配
1. "<all_urls>"
2. "file:///"
- 允許擴(kuò)展程序在本地文件上運(yùn)行。此模式要求用戶手動授予訪問權(quán)限。請注意,該情況需要三個斜杠,而不是兩個。
3. 本地主機(jī)網(wǎng)址和 IP 地址
- 如需在開發(fā)期間匹配任何
localhost端口,請使用http://localhost/*。對于IP地址,請在路徑中指定地址并添加通配符,例如http://127.0.0.1/*。還可以使用http://*:*/*來匹配localhost、IP地址和任何端口。
4. 頂級網(wǎng)域匹配模式(Top Level domain)
-
Chrome不支持頂級域名 (TLD) 的匹配格式。在各個TLD中指定匹配模式,例如http://google.es/*和http://google.fr/*。
三、使用場景
擴(kuò)展程序可在多種使用場景中使用匹配模式,包括:
- 注入內(nèi)容腳本。
-
聲明某些
Chrome API除自身權(quán)限外還需要一些主機(jī)權(quán)限。 - 授予對可通過
Web訪問的資源的訪問權(quán)限。 - 允許使用
"externally_connectable.matches"清單鍵收發(fā)消息。
四、示例
-
https://*/*或https://*/- 匹配使用
https架構(gòu)的所有網(wǎng)址。
- 匹配使用
-
https://*/foo*- 匹配任意主機(jī)上使用
https架構(gòu)且路徑以foo開頭的任何網(wǎng)址。匹配示例包括https://example.com/foo/bar.html和https://www.google.com/foo。
- 匹配任意主機(jī)上使用
-
https://*.google.com/foo*bar- 匹配
google.com主機(jī)上使用https架構(gòu)且路徑以foo開頭、以bar結(jié)尾的任何網(wǎng)址。匹配示例包括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/- 匹配主機(jī) 127.0.0.1 上使用
http架構(gòu)的所有網(wǎng)址。匹配示例包括http://127.0.0.1/和http://127.0.0.1/foo/bar.html。
- 匹配主機(jī) 127.0.0.1 上使用
-
http://localhost/*- 匹配任何
localhost端口。
- 匹配任何
-
*://mail.google.com/或*://mail.google.com/*- 匹配以
http://mail.google.com或https://mail.google.com開頭的所有網(wǎng)址。
- 匹配以