content_scripts
| Typ | Array |
|---|---|
| Erforderlich | Nein |
| Manifest-Version | 2 oder höher |
| Beispiel |
json |
Weist den Browser an, Content Scripts in Webseiten zu laden, deren URL einem Muster entspricht.
Dieser Schlüssel ist ein Array. Jedes Element ist ein Objekt, das:
- muss eine Eigenschaft namens
matchesenthalten, die die URL-Muster angibt, die erfüllt sein müssen, damit die Skripte geladen werden; - kann Eigenschaften namens
jsundcssenthalten, die Skripte und Stylesheets auflisten, die in übereinstimmende Seiten geladen werden sollen; und - kann eine Reihe weiterer Eigenschaften enthalten, die Aspekte davon steuern, wie und wann Content Scripts geladen werden.
Diese Tabelle führt alle Eigenschaften auf, die Sie einschließen können.
| Name | Typ | Beschreibung |
|---|---|---|
all_frames
|
Boolean |
Der Standardwert ist |
css
|
Array |
Ein Array von Pfaden relativ zu Hinweis: Firefox löst URLs in eingefügten CSS-Dateien relativ zur CSS-Datei selbst auf und nicht relativ zu der Seite, in die sie eingefügt wird. |
css_origin
Optional |
String |
Der Stilursprung für die CSS-Injektion:
"author".
Bei dieser Eigenschaft wird in Firefox und Safari die Groß- und Kleinschreibung nicht berücksichtigt. |
exclude_globs
|
Array |
Ein Array von Strings mit Wildcards. Siehe unten Übereinstimmende URL-Muster. |
exclude_matches
|
Array |
Ein Array von Übereinstimmungsmustern. Siehe unten Übereinstimmende URL-Muster. |
include_globs
|
Array |
Ein Array von Strings mit Wildcards. Siehe unten Übereinstimmende URL-Muster. |
js
|
Array |
Ein Array von Pfaden relativ zu |
match_about_blank
|
Boolean |
Fügt die Content Scripts in Seiten ein, deren URL
Dies ist besonders nützlich, um Skripte in leeren iframes auszuführen,
deren URL
Nehmen Sie beispielsweise an, Sie haben einen Schlüssel
json
Wenn der Benutzer
Hinweis:
Beachten Sie, dass Content Scripts in Firefox nicht bei
|
match_origin_as_fallback
|
Boolean |
Wenn true, wird Code in about:-, data:- und blob:-Seiten eingefügt, wenn ihr Ursprung dem Muster in matches entspricht, selbst wenn der Dokumentursprung undurchsichtig ist (aufgrund der Verwendung von CSP oder einer iframe-Sandbox). Übereinstimmungsmuster in matches müssen einen Wildcard-Pfad-Glob angeben. Der Standardwert ist false.
|
matches
|
Array |
Ein Array von Übereinstimmungsmustern. Siehe unten Übereinstimmende URL-Muster. Dies ist der einzige erforderliche Schlüssel. |
run_at
|
String |
Diese Option bestimmt, wann die in
Der Standardwert ist
In allen Fällen werden Dateien in |
world
|
String |
Die JavaScript-Welt, in der das Skript ausgeführt wird.
Der Standardwert ist |
Ladereihenfolge
Registrierte Objekte in content_scripts werden zum durch run_at angegebenen Zeitpunkt in übereinstimmende Webseiten eingefügt (zuerst document_start, dann document_end und schließlich document_idle):
- In der in dem Array
content_scriptsangegebenen Reihenfolge, für jedes Objekt mit einem übereinstimmendenrun_at-Wert, dann:- CSS wird in der in seinem Array
cssangegebenen Reihenfolge angewendet. Standardmäßig erhält CSS vom Ursprung"author"Priorität, soferncss_originnicht auf"user"gesetzt ist. - JavaScript-Code wird in der in seinem Array
jsangegebenen Reihenfolge ausgeführt.
- CSS wird in der in seinem Array
Zum Beispiel in dieser Schlüsselspezifikation:
"content_scripts": [
{
"matches": ["*://*.mozilla.org/*"],
"js": ["jquery.js", "my-content-script.js"],
"run_at": "document_idle"
},
{
"matches": ["*://*.mozilla.org/*"],
"css": ["my-css.css"],
"js": ["another-content-script.js", "yet-another-content-script.js"],
"run_at": "document_idle"
},
{
"matches": ["*://*.mozilla.org/*"],
"js": ["run-first.js"],
"run_at": "document_start"
}
]
Die Dateien werden beim Öffnen einer mozilla.org-Domain wie folgt geladen:
"run-first.js"– weil die Ausführung bei"document_start"angefordert wird."jquery.js"– weil es sich im ersten Array befindet, das die Ausführung bei"document_idle"anfordert."my-content-script.js"– weil es das zweite Element im ersten Array ist, das die Ausführung bei"document_idle"anfordert."my-css.css"– weil das CSS eines Objekts vor seinem JavaScript geladen wird."another-content-script.js"– weil es das erste Element in der Eigenschaftjsist."yet-another-content-script.js"
Übereinstimmende URL-Muster
Der Schlüssel "content_scripts" hängt Content Scripts anhand von URL-Übereinstimmungen an Dokumente an: Wenn die URL des Dokuments der Spezifikation im Schlüssel entspricht, wird das Skript angehängt. In "content_scripts" gibt es vier Eigenschaften, die Sie für diese Spezifikation verwenden können:
matches-
ein Array von Übereinstimmungsmustern
exclude_matches-
ein Array von Übereinstimmungsmustern
include_globs-
ein Array von Globs
exclude_globs-
ein Array von Globs
Damit eine dieser Eigenschaften übereinstimmt, muss eine URL mindestens einem der Elemente in ihrem Array entsprechen. Bei einer Eigenschaft wie der folgenden:
"matches": ["*://*.example.org/*", "*://*.example.com/*"]
entsprechen sowohl http://example.org/ als auch http://example.com/ dem Muster.
Da matches der einzige erforderliche Schlüssel ist, werden die anderen drei Schlüssel verwendet, um die übereinstimmenden URLs weiter einzuschränken. Damit eine URL dem Schlüssel als Ganzem entspricht, muss sie:
- der Eigenschaft
matchesentsprechen - UND der Eigenschaft
include_globsentsprechen, sofern vorhanden - UND NICHT der Eigenschaft
exclude_matchesentsprechen, sofern vorhanden - UND NICHT der Eigenschaft
exclude_globsentsprechen, sofern vorhanden
globs
Ein Glob ist einfach ein String, der Wildcards enthalten kann.
Es gibt zwei Arten von Wildcards, die Sie im selben Glob kombinieren können:
*entspricht null oder mehr Zeichen.?entspricht genau einem Zeichen.
Zum Beispiel würde "*na?i" mit "illuminati" und "annunaki" übereinstimmen, aber nicht mit "sagnarelli".
Beispiel
"content_scripts": [
{
"matches": ["*://*.mozilla.org/*"],
"js": ["borderify.js"]
}
]
Dies fügt ein einzelnes Content Script borderify.js in alle Seiten unter mozilla.org oder einer seiner Subdomains ein, unabhängig davon, ob sie über HTTP oder HTTPS bereitgestellt werden.
"content_scripts": [
{
"exclude_matches": ["*://developer.mozilla.org/*"],
"matches": ["*://*.mozilla.org/*"],
"js": ["jquery.js", "borderify.js"]
}
]
Dies fügt zwei Content Scripts in alle Seiten unter mozilla.org oder einer seiner Subdomains ein, mit Ausnahme von developer.mozilla.org, unabhängig davon, ob sie über HTTP oder HTTPS bereitgestellt werden.
Die Content Scripts sehen dieselbe Ansicht des DOM und werden in der Reihenfolge eingefügt, in der sie im Array erscheinen. Daher kann borderify.js globale Variablen sehen, die von jquery.js hinzugefügt wurden.
Spezifikationen
| Spezifikation |
|---|
| Web Extensions> # key-content_scripts> |