content_scripts
| Typ | Array |
|---|---|
| Verpflichtend | Nein |
| Manifestversion | 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 mit dem Namen
matchesenthalten, die die URL-Muster spezifiziert, die für das Laden der Skripte übereinstimmen müssen; - kann Eigenschaften mit den Namen
jsundcssenthalten, die Skripte und Stylesheets listen, die in übereinstimmende Seiten geladen werden sollen; und - kann eine Anzahl anderer Eigenschaften enthalten, die Aspekte steuern, wie und wann Content Scripts geladen werden.
Diese Tabelle beschreibt alle Eigenschaften, die Sie einschließen können.
| Name | Typ | Beschreibung |
|---|---|---|
all_frames
|
Boolean |
Standardmäßig ist |
css
|
Array |
Ein Array von Pfaden, relativ zu Hinweis: Firefox löst URLs in integrierten CSS-Dateien relativ zur CSS-Datei selbst auf, anstatt zur Seite, in die sie integriert ist. |
css_origin
Optional |
String |
Der Stilursprung für die CSS-Integration:
"author".
Diese Eigenschaft ist in Firefox und Safari nicht case-sensitiv. |
exclude_globs
|
Array |
Ein Array von Zeichenfolgen, die Platzhalter enthalten. Siehe unten Übereinstimmende URL-Muster. |
exclude_matches
|
Array |
Ein Array von Übereinstimmungsmustern. Siehe unten Übereinstimmende URL-Muster. |
include_globs
|
Array |
Ein Array von Zeichenfolgen, die Platzhalter enthalten. Siehe unten Übereinstimmende URL-Muster. |
js
|
Array |
Ein Array von Pfaden, relativ zu |
match_about_blank
|
Boolean |
Fügen Sie die Content Scripts in Seiten ein, deren URL
Dies ist besonders nützlich, um Skripte in leeren iframes auszuführen, deren URL
Angenommen, Sie haben einen json
Wenn der Benutzer
Hinweis:
Beachten Sie, dass in Firefox Content Scripts nicht in leere iframes bei |
match_origin_as_fallback
|
Boolean |
Wenn true, wird Code in about:, data: und blob:-Seiten injiziert, wenn ihr Ursprung mit dem Muster in matches übereinstimmt, auch wenn der Dokumentenursprung undurchsichtig ist (aufgrund der Verwendung von CSP oder iframe-Sandbox). Übereinstimmungsmuster in matches müssen ein Wildcard-Pfad-Glob spezifizieren. Standardmäßig ist false.
|
matches
|
Array |
Ein Array von Übereinstimmungsmustern. Siehe unten Übereinstimmende URL-Muster. Dies ist der einzige zwingende 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 |
Lade-Reihenfolge
Registrierte Objekte in content_scripts werden in übereinstimmende Webseiten zur Zeit eingesetzt, die durch run_at festgelegt wird (zuerst document_start, dann document_end und schließlich document_idle):
- In der Reihenfolge, die im
content_scripts-Array für jedes Objekt angegeben ist, das einen passendenrun_at-Wert hat, dann:- CSS wird in der Reihenfolge angewendet, die im
css-Array angegeben ist. Standardmäßig hat CSS aus dem"author"-Ursprung Vorrang, es sei denn,css_originist auf"user"gesetzt. - JavaScript-Code wird in der Reihenfolge ausgeführt, die im
js-Array angegeben ist.
- CSS wird in der Reihenfolge angewendet, die im
Zum Beispiel, in dieser Schlüssel-Spezifikation:
"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"
}
]
Werden die Dateien folgendermaßen geladen, wenn eine mozilla.org-Domain geöffnet wird:
"run-first.js"- weil es aufdocument_startausgeführt werden soll."jquery.js"- weil es im ersten Array angefordert wird, um auf"document_idle"ausgeführt zu werden."my-content-script.js"- weil es das zweite Element im ersten Array ist, das"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 derjs-Eigenschaft ist."yet-another-content-script.js"
Übereinstimmende URL-Muster
Der Schlüssel "content_scripts" fügt Content Scripts an Dokumente basierend auf URL-Übereinstimmung an: Wenn die URL des Dokuments mit der Spezifikation im Schlüssel übereinstimmt, wird das Skript angeheftet. Es gibt vier Eigenschaften innerhalb von "content_scripts", 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
Um mit einer dieser Eigenschaften übereinzustimmen, muss eine URL mit mindestens einem der Elemente in ihrem Array übereinstimmen. Zum Beispiel, gegeben eine Eigenschaft wie:
"matches": ["*://*.example.org/*", "*://*.example.com/*"]
Sowohl http://example.org/ als auch http://example.com/ werden übereinstimmen.
Da matches der einzige verpflichtende Schlüssel ist, werden die anderen drei Schlüssel verwendet, um die URLs, die übereinstimmen, weiter zu begrenzen. Um mit dem Schlüssel insgesamt übereinzustimmen, muss eine URL:
- mit der
matches-Eigenschaft übereinstimmen - UND mit der
include_globs-Eigenschaft übereinstimmen, falls vorhanden - UND NICHT mit der
exclude_matches-Eigenschaft übereinstimmen, falls vorhanden - UND NICHT mit der
exclude_globs-Eigenschaft übereinstimmen, falls vorhanden
Globs
Ein Glob ist einfach eine Zeichenfolge, die Platzhalter enthalten kann.
Es gibt zwei Arten von Platzhaltern, und Sie können sie im selben Glob kombinieren:
*steht für null oder mehr Zeichen?steht für genau ein Zeichen.
Zum Beispiel: "*na?i" würde sowohl "illuminati" als auch "annunaki" entsprechen, aber nicht "sagnarelli".
Beispiel
"content_scripts": [
{
"matches": ["*://*.mozilla.org/*"],
"js": ["borderify.js"]
}
]
Dies injiziert ein einzelnes Content Script borderify.js in alle Seiten unter mozilla.org oder einer seiner Subdomains, unabhängig davon, ob es über HTTP oder HTTPS bereitgestellt wird.
"content_scripts": [
{
"exclude_matches": ["*://developer.mozilla.org/*"],
"matches": ["*://*.mozilla.org/*"],
"js": ["jquery.js", "borderify.js"]
}
]
Dies injiziert zwei Content Scripts in alle Seiten unter mozilla.org oder einer seiner Subdomains, außer developer.mozilla.org, unabhängig davon, ob es über HTTP oder HTTPS bereitgestellt wird.
Die Content Scripts sehen dieselbe Ansicht des DOMs und werden in der Reihenfolge injiziert, in der sie im Array erscheinen, sodass borderify.js globale Variablen sehen kann, die von jquery.js hinzugefügt wurden.
Spezifikationen
| Spezifikation |
|---|
| Web Extensions> # key-content_scripts> |