Übereinstimmungsmuster
Übereinstimmungsmuster sind eine Methode, um Gruppen von URLs zu spezifizieren: Ein Übereinstimmungsmuster passt auf eine bestimmte Menge von URLs. Sie werden in den WebExtensions-APIs an einigen Stellen verwendet, insbesondere um zu definieren, in welche Dokumente Content-Skripte geladen werden sollen, und um anzugeben, bei welchen URLs webRequest
Listener hinzugefügt werden sollen.
APIs, die Übereinstimmungsmuster verwenden, akzeptieren in der Regel eine Liste von Übereinstimmungsmustern und führen die entsprechende Aktion aus, wenn die URL einem der Muster entspricht. Siehe zum Beispiel den content_scripts
-Schlüssel in manifest.json.
Struktur des Übereinstimmungsmusters
Hinweis: Einige Browser unterstützen bestimmte Schemes nicht. Überprüfen Sie die Browser-Kompatibilitätstabelle für Details.
Alle Übereinstimmungsmuster werden als Strings angegeben. Abgesehen vom speziellen Muster <all_urls>
bestehen Übereinstimmungsmuster aus drei Teilen: scheme, host und path. Scheme und Host sind durch ://
getrennt.
<scheme>://<host><path>
scheme
Die Komponente scheme kann eine von zwei Formen annehmen:
Form | Übereinstimmungen |
---|---|
* |
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
Die Komponente host kann eine von drei Formen annehmen:
Form | Übereinstimmungen |
---|---|
* |
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 dann optional, wenn das scheme "file" ist.
Beachten Sie, dass das Platzhalterzeichen nur am Anfang stehen darf.
path
Die Komponente path muss mit einem /
beginnen.
Danach kann sie jede Kombination aus dem Platzhalterzeichen *
und den Zeichen enthalten, die in URL-Pfaden oder Abfragezeichenfolgen erlaubt sind. Im Gegensatz zu host darf die Komponente path das Platzhalterzeichen *
in der Mitte oder am Ende enthalten, und das Platzhalterzeichen *
darf mehr als einmal vorkommen.
Der Wert für den path wird mit dem String abgeglichen, der aus dem URL-Pfad plus der URL-Abfragezeichenfolge besteht. Dies schließt gegebenenfalls das ?
zwischen den beiden ein, wenn die Abfragezeichenfolge in der URL vorhanden ist. Wenn Sie beispielsweise URLs in einer beliebigen Domain abgleichen möchten, bei denen der URL-Pfad mit foo.bar
endet, müssen Sie ein Array von Übereinstimmungsmustern wie ["*://*/*foo.bar", "*://*/*foo.bar?*"]
verwenden. Das ?*
ist notwendig, um zu verhindern, dass das abschließende *
auf den URL-Pfad anstelle der URL-Abfragezeichenfolge angewendet wird.
Weder der URL-Fragment-Identifier noch das #
, das ihm vorangeht, werden als Teil des path betrachtet.
Hinweis:
Die String-Formatierung für das Pfadmuster sollte keine Portnummer enthalten. Das Hinzufügen eines Ports, wie in: http://localhost:1234/*
, führt dazu, dass das Übereinstimmungsmuster ignoriert wird. Jedoch passt http://localhost:1234
zu http://localhost/*
.
<all_urls>
Der spezielle Wert <all_urls>
stimmt mit allen URLs unter jedem unterstützten Scheme überein, das sind "http", "https", "ws", "wss", "ftp", "data" und "file".
Beispiele
Muster | Beispielmatches | Beispiel-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 einer seiner Subdomains gehostet werden. |
|
|
Übereinstimmung mit allen HTTP-, HTTPS- und WebSocket-URLs, die exakt unter "mozilla.org/" gehostet werden. |
|
|
Ü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 bei "mozilla.org", mit jedem URL-Pfad und jeder URL-Abfragezeichenfolge. |
|
|
Übereinstimmung nur mit dieser URL oder mit dieser URL mit einem beliebigem URL-Fragment. |
|
Alles andere. |
Übereinstimmung mit HTTPS-URLs, die auf "mozilla.org" gehostet werden,
deren Pfad irgendwo in der Mitte eine 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 passender Pfad) |
Ungültige Übereinstimmungsmuster
Ungültiges Muster | Grund |
---|---|
resource://path/ |
Nicht unterstütztes Scheme. |
https://mozilla.org |
Kein Pfad vorhanden. |
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/ |
Der Host darf keine Portnummer enthalten. |
*://* |
Leerzeichen: das sollte *://*/* sein. |
file://* |
Leerzeichen: das sollte file:///* sein. |