--- 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("webextensions.match_patterns.scheme",10)}}