Der Schlüssel "content_scripts"
gibt eine statisch geladene JavaScript- oder CSS-Datei an, die bei jedem Öffnen einer Seite verwendet werden soll, die einem bestimmten URL-Muster entspricht. Erweiterungen können Inhaltsskripte auch programmatisch einschleusen. Weitere Informationen finden Sie unter Skripte einfügen.
Manifest
Dies sind die unterstützten Schlüssel für "content_scripts"
. Nur der "matches"
-Schlüssel und entweder "js"
oder "css"
sind erforderlich.
manifest.json
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["https://*.example.com/*"],
"css": ["my-styles.css"],
"js": ["content-script.js"],
"exclude_matches": ["*://*/*foo*"],
"include_globs": ["*example.com/???s/*"],
"exclude_globs": ["*bar*"],
"all_frames": false,
"match_origin_as_fallback": false,
"match_about_blank": false,
"run_at": "document_idle",
"world": "ISOLATED",
}
],
...
}
Dateien
Jede Datei muss einen relativen Pfad zu einer Ressource im Stammverzeichnis der Erweiterung enthalten. Vorangestellte Schrägstriche (/
) werden automatisch abgeschnitten. Der Schlüssel "run_at"
gibt an, wann jede Datei eingeschleust wird.
"css"
– Array- Optional. Ein Array mit CSS-Dateipfaden, die in der Reihenfolge dieses Arrays eingeschleust werden, bevor die DOM-Erstellung oder das Seiten-Rendering erfolgt.
"js"
– Array,- Optional. Ein Array von JavaScript-Dateipfaden, die in der Reihenfolge eingeschleust werden, in der sie in diesem Array erscheinen, nachdem CSS-Dateien eingeschleust wurden. Jeder String im Array muss ein relativer Pfad zu einer Ressource im Stammverzeichnis der Erweiterung sein. Vorangestellte Schrägstriche ('/') werden automatisch abgeschnitten.
URLs abgleichen
Nur die Property "matches"
ist erforderlich. Anschließend können Sie mit "exclude_matches"
, "include_globs"
und "exclude_globs"
anpassen, in welche URLs Code eingefügt werden soll. Der Schlüssel "matches"
löst eine Warnung aus.
"matches"
– Array- Erforderlich. Gibt an, in welche URL-Muster die Inhaltsskripte eingefügt werden sollen. Informationen zur Syntax finden Sie unter Übereinstimmungsmuster.
"exclude_matches"
– Array- Optional. Schließt die URL-Muster aus, in die die Inhaltsskripte eingefügt werden sollen. Informationen zur Syntax finden Sie unter Übereinstimmungsmuster.
"include_globs"
– Array- Optional. Wird nach Übereinstimmungen angewendet, um nur die URLs einzuschließen, die auch mit diesem Glob übereinstimmen. Soll das Greasemonkey-Keyword @include emuliert werden.
"exclude_globs"
– Array- Optional. Wird nach Übereinstimmungen angewendet, um URLs auszuschließen, die mit diesem glob übereinstimmen. Soll das Greasemonkey-Keyword @exclude emulieren.
Glob-URLs enthalten Platzhalter * und Fragezeichen. Der Platzhalter * entspricht einem String beliebiger Länge, einschließlich leerer Strings, während das Fragezeichen ? entspricht einem einzelnen Zeichen.
Das Content-Skript wird in eine Seite eingefügt, wenn:
- Seine URL stimmt mit allen
"matches"
- und"include_globs"
-Mustern überein. - Und die URL stimmt nicht mit
"exclude_matches"
- oder"exclude_globs"
-Mustern überein.
Beispiele für Globs und URL-Übereinstimmungen
"include_globs"
manifest.json
{
...
"content_scripts": [
{
"matches": ["https://*.example.com/*"],
"include_globs": ["https://???.example.com/foo/*"],
"js": ["content-script.js"]
}
],
...
}
https://www.example.com/foo/bar https://the.example.com/foo/
https://my.example.com/foo/bar https://example.com/foo/* https://www.example.com/foo
manifest.json
{
...
"content_scripts": [
{
"matches": ["https://*.example.com/*"],
"include_globs": ["*example.com/???s/*"],
"js": ["content-script.js"]
}
],
...
}
https://www.example.com/arts/index.html https://www.example.com/jobs/index.html
https://www.example.com/sports/index.html https://www.example.com/music/index.html
"exclude_globs"
manifest.json
{
...
"content_scripts": [
{
"matches": ["https://*.example.com/*"],
"exclude_globs": ["*science*"],
"js": ["content-script.js"]
}
],
...
}
https://history.example.com https://.example.com/music
https://science.example.com https://www.example.com/science
Beispiel für erweiterte Anpassung
manifest.json
{
...
"content_scripts": [
{
"matches": ["https://*.example.com/*"],
"exclude_matches": ["*://*/*business*"],
"include_globs": ["*example.com/???s/*"],
"exclude_globs": ["*science*"],
"js": ["content-script.js"]
}
],
...
}
https://www.example.com/arts/index.html https://.example.com/jobs/index.html
https://science.example.com https://www.example.com/jobs/business https://www.example.com/science
Frames
Der Schlüssel "all_frames"
gibt an, ob das Content-Skript in alle Frames eingeschleust werden soll, die den angegebenen URL-Anforderungen entsprechen. Wenn false
festgelegt ist, wird es nur in den obersten Frame eingefügt. Es kann zusammen mit "match_about_blank"
verwendet werden, um es in einen about:blank
-Frame einzufügen.
Setzen Sie "match_origin_as_fallback"
auf true
, um sie in andere Frames wie data:
, blob:
und filesystem:
einzufügen. Weitere Informationen finden Sie unter In zusammengehörigen Frames einfügen.
"all_frames"
boolesch- Optional. Die Standardeinstellung ist
false
. Das bedeutet, dass nur der oberste Frame abgeglichen wird. Ist sie auf „true“ gesetzt, wird der Frame in alle Frames eingefügt, auch wenn der Frame nicht der oberste Frame auf dem Tab ist. Jeder Frame wird unabhängig auf URL-Anforderungen geprüft. Er wird nicht in untergeordnete Frames eingefügt, wenn die URL-Anforderungen nicht erfüllt sind. "match_about_blank"
– Boolesch- Optional. Die Standardeinstellung ist
false
. Gibt an, ob das Skript in einenabout:blank
-Frame eingeschleust werden soll, in dem die übergeordnete URL mit einem der in"matches"
deklarierten Muster übereinstimmt. "match_origin_as_fallback"
– Boolesch- Optional. Die Standardeinstellung ist
false
. Gibt an, ob das Skript in Frames eingeschleust werden soll, die von einem übereinstimmenden Ursprung erstellt wurden, aber deren URL oder Ursprung möglicherweise nicht direkt mit dem Muster übereinstimmt. Dazu gehören Frames mit unterschiedlichen Schemas wieabout:
,data:
,blob:
undfilesystem:
.
Laufzeit und Ausführungsumgebung
Inhaltsskripte werden standardmäßig eingeschleust, wenn das Dokument und alle Ressourcen fertig geladen sind und sich in einer privaten, isolierten Ausführungsumgebung befinden, auf die die Seite oder andere Erweiterungen nicht zugreifen können. Sie können diese Standardeinstellungen mit den folgenden Tasten ändern:
"run_at"
-document_start
|document_end
|document_idle
- Optional. Gibt an, wann das Skript in die Seite eingeschleust werden soll. Er entspricht den Ladestatus von Document.readyState:
<ph type="x-smartling-placeholder">
- </ph>
"document_start"
: Das DOM wird noch geladen."document_end"
: Die Ressourcen der Seite werden noch geladen"document_idle"
: Das DOM und die Ressourcen wurden vollständig geladen. Das ist die Standardeinstellung.
"world"
-ISOLATED
|MAIN
- Optional. Die JavaScript-Welt, in der ein Script ausgeführt werden soll. Die Standardeinstellung ist
"ISOLATED"
, die Ausführungsumgebung des Inhaltsskripts. Wenn Sie"MAIN"
auswählen, teilt das Skript die Ausführungsumgebung mit dem JavaScript der Hostseite. Weitere Informationen finden Sie unter Arbeiten in isolierten Welten.
Beispiel
In der Anleitung Auf jeder Seite ausführen erfahren Sie, wie Sie eine Erweiterung erstellen, die ein Inhaltsskript in das Manifest einfügt.