content_scripts
Typ | Array |
---|---|
Verpflichtend | Nein |
Manifestversion | 2 oder höher |
Beispiel |
json
|
Weist den Browser an, Content-Skripte in Webseiten zu laden, deren URL einem Muster entspricht.
Dieser Schlüssel ist ein Array. Jedes Element ist ein Objekt, das:
- muss einen Schlüssel namens
matches
enthalten, der die URL-Muster angibt, für die die Skripte geladen werden sollen; - kann Schlüssel namens
js
undcss
enthalten, die Skripte und Stylesheets auflisten, die in die entsprechenden Seiten geladen werden sollen; und - kann eine Reihe anderer Eigenschaften enthalten, die Aspekte steuern, wie und wann Content-Skripte geladen werden.
Diese Tabelle zeigt alle Schlüssel, die Sie einfügen können.
Name | Typ | Beschreibung |
---|---|---|
all_frames
|
Boolean |
Standardmäßig |
css
|
Array |
Ein Array von Pfaden, relativ zu Hinweis: Firefox löst URLs in injizierten CSS-Dateien relativ zur CSS-Datei selbst auf, nicht zur Seite, in die sie injiziert wird. |
exclude_globs
|
Array |
Ein Array von Zeichenfolgen, die Wildcards enthalten. Siehe Übereinstimmende URL-Muster unten. |
exclude_matches
|
Array |
Ein Array von Übereinstimmungsmustern. Siehe Übereinstimmende URL-Muster unten. |
include_globs
|
Array |
Ein Array von Zeichenfolgen, die Wildcards enthalten. Siehe Übereinstimmende URL-Muster unten. |
js
|
Array |
Ein Array von Pfaden, relativ zu |
match_about_blank
|
Boolean |
Fügt die Content-Skripte 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-Skripte nicht in leere iframes injiziert werden bei |
match_origin_as_fallback
|
Boolean |
Wenn true , wird Code in about: , data: und blob: Seiten injiziert, wenn deren 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 Platzhalter-Pfad-Globbing angeben. Standardmäßig false .
|
matches
|
Array |
Ein Array von Übereinstimmungsmustern. Siehe Übereinstimmende URL-Muster unten. Dies ist der einzige verpflichtende Schlüssel. |
run_at
|
String |
Diese Option bestimmt, wann die in
Der Standardwert ist
In allen Fällen werden die Dateien in |
world
|
String |
Die JavaScript-Welt, in der das Skript ausgeführt wird.
Der Standardwert ist |
Ladereihenfolge
Registrierte Objekte in content_scripts
werden in die passenden Webseiten zur angegebenen Zeit durch run_at
injiziert (zuerst document_start
, dann document_end
und schließlich document_idle
):
- In der Reihenfolge angegeben im
content_scripts
Array, für jedes Objekt mit einem passendenrun_at
Wert, dann:- CSS wird in der Reihenfolge angewendet, die in seinem
css
Array angegeben ist. - JavaScript-Code wird in der Reihenfolge ausgeführt, die in seinem
js
Array angegeben ist.
- CSS wird in der Reihenfolge angewendet, die in seinem
Zum Beispiel, bei 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"
}
]
Werden die Dateien so geladen, wenn eine mozilla.org-Domain geöffnet wird:
"run-first.js"
- weil es gebeten wird, bei"document_start"
zu laufen."jquery.js"
- weil es im ersten Array angefordert wird, bei"document_idle"
zu laufen."my-content-script.js"
- weil es das zweite Element im ersten Array ist, das angefordert wird, bei"document_idle"
zu laufen."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 "content_scripts"
Schlüssel fügt Content-Skripte an Dokumente basierend auf URL-Übereinstimmungen: wenn die URL des Dokuments mit der Angabe im Schlüssel übereinstimmt, dann wird das Skript angefügt. Es gibt vier Eigenschaften innerhalb von "content_scripts"
, die Sie für diese Angabe 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 eine dieser Eigenschaften zu entsprechen, muss eine URL mit mindestens einem der Elemente in ihrem Array übereinstimmen. Beispielsweise bei einer 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 weiter einzuschränken, die übereinstimmen. Um der Schlüssel insgesamt zu entsprechen, muss eine URL:
- der
matches
Eigenschaft entsprechen - UND der
include_globs
Eigenschaft entsprechen, falls vorhanden - UND NICHT der
exclude_matches
Eigenschaft entsprechen, falls vorhanden - UND NICHT der
exclude_globs
Eigenschaft entsprechen, falls vorhanden
globs
Ein glob ist einfach eine Zeichenfolge, die Wildcards enthalten kann.
Es gibt zwei Arten von Wildcards, und Sie können sie im selben Glob kombinieren:
*
passt auf null oder mehr Zeichen?
passt genau auf ein Zeichen.
Zum Beispiel: "*na?i"
würde "illuminati"
und "annunaki"
passen, aber nicht "sagnarelli"
.
Beispiel
"content_scripts": [
{
"matches": ["*://*.mozilla.org/*"],
"js": ["borderify.js"]
}
]
Dies injiziert ein einzelnes Content-Skript borderify.js
in alle Seiten unter mozilla.org
oder einem seiner Subdomains, unabhängig davon, ob es über HTTP oder HTTPS bereitgestellt wird.
"content_scripts": [
{
"exclude_matches": ["*://newreal1.mobosoft.fun/*"],
"matches": ["*://*.mozilla.org/*"],
"js": ["jquery.js", "borderify.js"]
}
]
Dies injiziert zwei Content-Skripte in alle Seiten unter mozilla.org
oder einem seiner Subdomains außer newreal1.mobosoft.fun
, unabhängig davon, ob es über HTTP oder HTTPS bereitgestellt wird.
Die Content-Skripte sehen dieselbe Ansicht des DOM 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.
Browser-Kompatibilität
Loading…