Match patterns
Match-Muster sind eine Möglichkeit, Gruppen von URLs zu spezifizieren: Ein Match-Muster entspricht einem bestimmten Satz von URLs. Sie werden in WebExtensions-APIs an mehreren Stellen verwendet, insbesondere um festzulegen, in welche Dokumente Content Scripts geladen werden sollen, und um zu bestimmen, welchen URLs webRequest
-Listener hinzugefügt werden sollen.
APIs, die Match-Muster verwenden, akzeptieren normalerweise eine Liste von Match-Mustern und führen die entsprechende Aktion durch, wenn die URL einem der Muster entspricht. Siehe zum Beispiel den content_scripts
-Schlüssel in der manifest.json.
Struktur der Match-Muster
Hinweis: Einige Browser unterstützen bestimmte Schemes nicht. Überprüfen Sie die Tabelle zur Browser-Kompatibilität für Details.
Alle Match-Muster werden als Zeichenfolgen angegeben. Abgesehen vom speziellen Muster <all_urls>
bestehen Match-Muster aus drei Teilen: scheme, host und path. Das Scheme und der Host werden durch ://
getrennt.
<scheme>://<host><path>
scheme
Der scheme-Teil kann eine von zwei Formen annehmen:
Form | Entspricht |
---|---|
* |
Nur "http" und "https" und in einigen Browsern auch "ws" und "wss". |
Eines von http , https , ws ,
wss , ftp , data ,
file oder (chrome-)extension .
|
Nur das angegebene Scheme. |
host
Der host-Teil kann eine von drei Formen annehmen:
Form | Entspricht |
---|---|
* |
Jeder Host. |
*. gefolgt von einem Teil des Hostnamens. |
Der angegebene Host und alle seine Subdomains. |
Ein vollständiger Hostname, ohne Platzhalter. | Nur der angegebene Host. |
host darf keine Portnummer enthalten.
host ist nur optional, wenn scheme "file" ist.
Beachten Sie, dass der Platzhalter nur am Anfang erscheinen darf.
path
Der path-Teil muss mit einem /
beginnen.
Danach kann er jede Kombination aus dem Platzhalter *
und beliebigen Zeichen enthalten, die in URL-Pfaden oder Abfragezeichenfolgen erlaubt sind. Im Gegensatz zu host kann der path-Teil den Platzhalter *
in der Mitte oder am Ende enthalten, und der Platzhalter *
kann mehrmals erscheinen.
Der Wert für den path wird mit dem String verglichen, der aus dem URL-Pfad plus der URL-Abfragezeichenfolge besteht. Dies schließt das ?
zwischen beiden ein, wenn die Abfragezeichenfolge in der URL vorhanden ist. Wenn Sie beispielsweise URLs auf einer beliebigen Domain abgleichen möchten, bei denen der URL-Pfad mit foo.bar
endet, müssen Sie ein Array von Match-Mustern wie ["*://*/*foo.bar", "*://*/*foo.bar?*"]
verwenden. Das ?*
ist notwendig, anstatt nur bar*
, um sicherzustellen, dass das abschließende *
auf die URL-Abfragezeichenfolge angewandt wird und nicht auf einen Teil des URL-Pfades.
Weder der URL-Fragment-Identifier noch das ihm vorangegangene #
werden als Teil des path betrachtet.
Hinweis:
Der Pfadmuster-String sollte keine Portnummer enthalten. Das Hinzufügen eines Ports, wie in: http://localhost:1234/*
, führt dazu, dass das Match-Muster ignoriert wird. http://localhost:1234
wird jedoch mit http://localhost/*
übereinstimmen.
<all_urls>
Der spezielle Wert <all_urls>
entspricht allen URLs unter jedem der unterstützten Schemes: das sind "http", "https", "ws", "wss", "ftp", "data" und "file".
Beispiele
Muster | Beispielhafte Übereinstimmungen | Beispielhafte Nicht-Übereinstimmungen |
---|---|---|
Übereinstimmung mit allen URLs. |
|
|
Übereinstimmung mit allen HTTP-, HTTPS- und WebSocket-URLs. |
|
|
Übereinstimmung mit allen HTTP-, HTTPS- und WebSocket-URLs, die auf "mozilla.org" oder einem seiner Subdomains gehostet sind. |
|
|
Übereinstimmung mit allen HTTP-, HTTPS- und WebSocket-URLs, die genau auf "mozilla.org/" gehostet sind. |
|
|
Übereinstimmung nur mit "ftp://mozilla.org/". |
ftp://mozilla.org |
|
Übereinstimmung mit HTTPS-URLs auf jedem Host, deren Pfad "path" ist. |
|
|
Übereinstimmung mit HTTPS-URLs auf jedem Host, deren Pfad "path/" ist und die keine URL-Abfragezeichenfolge haben. |
|
|
Übereinstimmung mit HTTPS-URLs nur auf "mozilla.org", mit jedem URL-Pfad und jeder URL-Abfragezeichenfolge. |
|
|
Übereinstimmung nur mit dieser URL oder dieser URL mit einem beliebigen URL-Fragment. |
|
Alles andere. |
Übereinstimmung mit HTTPS-URLs, die auf "mozilla.org" gehostet sind, wobei der Pfad irgendwo in der Mitte die Komponente "b" enthält. URLs mit Abfragezeichenfolgen werden übereinstimmen, wenn die Zeichenfolge mit einem |
|
|
Übereinstimmung mit jeder FILE-URL, deren Pfad mit "blah" beginnt. |
|
file:///bleh/ (nicht übereinstimmender Pfad) |
Ungültige Match-Muster
Ungültiges Muster | Grund |
---|---|
resource://path/ |
Nicht unterstütztes Scheme. |
https://mozilla.org |
Kein Pfad. |
https://mozilla.*.org/ |
"*" im Host muss am Anfang stehen. |
https://*zilla.org/ |
"*" im Host muss das einzige Zeichen sein oder von "." gefolgt werden. |
http*://mozilla.org/ |
"*" im Scheme muss das einzige Zeichen sein. |
https://mozilla.org:80/ |
Host darf keine Portnummer enthalten. |
*://* |
Leerer Pfad: dies sollte "*://*/* " sein. |
file://* |
Leerer Pfad: dies sollte "file:///* " sein. |
Browser-Kompatibilität
BCD tables only load in the browser