--- title: Шаблоны совпадения в расширении slug: Mozilla/Add-ons/WebExtensions/Match_patterns translation_of: Mozilla/Add-ons/WebExtensions/Match_patterns ---
Шаблоны совпадения - являются способом обозначения необходимых групп URL. Они используются в нескольких местах в WebExtensions API, главным образом для объявления какие веб-страницы должны загружать встраиваемые скрипты и по каким URL необходимо ожидать событий из webRequest API.
API, которое использует шаблоны совпадения, обычно принимает их списками, и выполняет соответствующие действия, если URL имеет совпадение с одним из шаблонов. Например, взгляните на content_scripts ключ в manifest.json.
Заметьте: Некоторые браузеры не поддерживают определённые схемы.
Смотрите Browser compatibility table для дополнительной информации.
Все шаблоны совпадения объявляются в виде строк. За исключением специального <all_urls> шаблона, шаблоны совпадения состоят из трёх компонентов: схема, хост и путь. Схема и хост разделяются с помощью ://.
<схема>://<хост><путь>
Компонент схема может принимать один из двух видов:
| Вид | Совпадение |
|---|---|
* |
Только "http" and "https", так же "ws" и "wss" в некоторых браузерах. |
Одно из http, https, ws, wss, ftp, ftps, data или file. |
Только данная схема. |
Компонент хост может принимать один из трёх видов:
| Form | Matches |
|---|---|
* |
Любой хост. |
*. за которыми следует частичное имя хоста. |
Данный хост и любые его субдомены. |
Полное название хоста без *. |
Только данный хост. |
Хост не должен включать в себя значение порта.
Хост не обязателен, если схема задана, как "file".
Заметьте, что * звёздочка (символ универсального значения) может быть написана только в начале строки.
Компонент путь должен начинаться с / символа.
Вслед за ним он может иметь любую комбинацию символов и * звёздочек, которые позволено использовать для обозначения URL и строки параметров (начинается после ?). В отличии от хоста, путь может содержать * звёздочку в середине или в конце строки, и * звёздочка может появляться в строке более одного раза.
Значение пути сравнивается со строкой, которая представляет из себя URL и строку параметров. Если строка параметров присутствует в URL, тогда она отделяется от основного URL знаком ?. Если вы хотите иметь соответствие с URL на любом домене, где URL путь кончается на foo.bar, не зависимо от присутствия строки параметров, тогда вам нужно иметь массив шаблонов совпадений, например ['*://*/*foo.bar', '*://*/*foo.bar?*']. В этой ситуации необходимо использовать ?*, а не bar*, для того чтобы обозначить, что * будет применяться к строке параметров, а не к основной части URL пути.
Ни идентификатор якоря, ни предшествующая ему #, не считаются частями пути.
Специальное значение <all_urls> совпадает со всеми URL, если они используются со следующими схемами: "http", "https", "ws", "wss", "ftp", "data", and "file".
| Шаблон | Пример совпадения | Пример несовпадения |
|---|---|---|
|
Совпадение со всеми URL. |
|
|
|
Совпадение со всеми HTTP, HTTPS и WebSocket URL. |
|
|
|
Совпадение со всеми HTTP, HTTPS и WebSocket URL, которые находятся на "mozilla.org" или одном из её субдоменов. |
|
|
|
Совпадение со всеми HTTP, HTTPS и WebSocket URL, которые находятся исключительно на "mozilla.org/". |
|
|
|
Совпадение только с "ftp://mozilla.org/". |
ftp://mozilla.org |
|
|
Совпадение со всеми HTTPS URL на любом хосте, чей путь точно соответствует "path". |
|
|
|
Совпадение со всеми HTTPS URL на любом хосте, чей путь точно соответствует "path/" и не имеет строки параметров. |
|
|
|
Совпадение со всеми HTTPS URL только на домене "mozilla.org", с любым URL путём и строкой параметров. |
|
|
|
Совпадение только с данным URL, или данным URL, имеющим идентификатор якоря. |
|
Всё остальное. |
|
Совпадение только с HTTPS URL, которые находятся на "mozilla.org", чей путь имеет сегмент "b" где-то в середине. Совпадёт с URL со строкой параметров, если эта строка параметров заканчивается на |
|
|
|
Совпадает с любым FILE URL, чей путь начинается с "blah". |
|
file:///bleh/(несовпадающий путь) |
| Недопустимый шаблон | Причина |
|---|---|
resource://path/ |
Неподдерживаемая схема. |
https://mozilla.org |
Отсутствие пути. |
https://mozilla.*.org/ |
"*" в хосте должна присутствовать только в начале. |
https://*zilla.org/ |
"*" в хосте должен быть единственным символом или сопровождаться ".". |
http*://mozilla.org/ |
"*" в схеме должен быть единственным символом. |
https://mozilla.org:80/ |
Хост не должен включать в себя номер порта. |
*://* |
Пустой путь: должно быть переписано, как "*://*/*". |
file://* |
Пустой путь: должно быть переписано, как "file:///*". |
{{Compat}}