Mit dem Schlüssel "content_scripts" wird eine statisch geladene JavaScript- oder CSS-Datei angegeben, die jedes Mal verwendet wird, wenn eine Seite geöffnet wird, die einem bestimmten URL-Muster entspricht. Erweiterungen können Inhaltsskripts auch programmatisch einfügen. Weitere Informationen finden Sie unter Skripts einfügen.
Manifest
Dies sind die unterstützten Schlüssel für "content_scripts". Nur der Schlüssel "matches" 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. Führende Schrägstriche (/) werden automatisch entfernt. Der Schlüssel "run_at" gibt an, wann die einzelnen Dateien eingefügt werden.
"css"– Array- Optional. Ein Array von CSS-Dateipfaden, die in der Reihenfolge dieses Arrays und vor der DOM-Konstruktion oder dem Seitenrendering eingefügt werden.
"js"– Array,- Optional. Ein Array von JavaScript-Dateipfaden, die in der Reihenfolge eingefügt werden, in der sie in diesem Array angezeigt werden, nachdem CSS-Dateien eingefügt wurden. Jeder String im Array muss ein relativer Pfad zu einer Ressource im Stammverzeichnis der Erweiterung sein. Führende Schrägstriche (/) werden automatisch entfernt.
URLs abgleichen
Nur das Attribut "matches" ist erforderlich. Anschließend können Sie mit "exclude_matches", "include_globs" und "exclude_globs" festlegen, 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 Inhaltsskripts eingefügt werden sollen. Informationen zur Syntax finden Sie unter Übereinstimmungsmuster.
"exclude_matches"– Array- Optional. Schließt die URL-Muster aus, in die die Inhaltsskripts 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 emulieren.
"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 sind URLs, die Platzhalter * und Fragezeichen enthalten. Der Platzhalter * steht für einen beliebigen String beliebiger Länge, einschließlich eines leeren Strings. Das Fragezeichen ? entspricht einem beliebigen einzelnen Zeichen.
Das Inhaltsskript wird in eine Seite eingefügt, wenn:
- Die URL stimmt mit allen
"matches"- und"include_globs"-Mustern überein. - Und die URL stimmt nicht mit den Mustern
"exclude_matches"oder"exclude_globs"ü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 Inhaltsskript in alle Frames eingefügt werden soll, die den angegebenen Anforderungen an URLs entsprechen. Wenn der Wert auf false gesetzt ist, wird nur in den obersten Frame eingefügt. Es kann zusammen mit "match_about_blank" verwendet werden, um in einen about:blank-Frame einzufügen.
Wenn Sie Code in andere Frames wie data:, blob: und filesystem: einfügen möchten, setzen Sie "match_origin_as_fallback" auf true. Weitere Informationen finden Sie unter In zugehörige Frames einfügen.
"all_frames"Boolesch- Optional. Der Standardwert ist
false, d. h., dass nur der oberste Frame abgeglichen wird. Wenn „true“ festgelegt ist, wird das Skript in alle Frames eingefügt, auch wenn der Frame nicht der oberste Frame im Tab ist. Jeder Frame wird unabhängig auf Anforderungen an URLs geprüft. Wenn die Anforderungen an URLs nicht erfüllt sind, wird er nicht in untergeordnete Frames eingefügt. "match_about_blank"– Boolesch- Optional. Die Standardeinstellung ist
false. Gibt an, ob das Script in einenabout:blank-Frame eingefügt werden soll, dessen übergeordnete URL mit einem der in"matches"deklarierten Muster übereinstimmt. "match_origin_as_fallback"– Boolesch- Optional. Die Standardeinstellung ist
false. Gibt an, ob das Script in Frames eingefügt werden soll, die von einem übereinstimmenden Ursprung erstellt wurden, deren URL oder Ursprung jedoch möglicherweise nicht direkt mit dem Muster übereinstimmt. Dazu gehören Frames mit unterschiedlichen Schemas, z. B.about:,data:,blob:undfilesystem:.
Laufzeit und Ausführungsumgebung
Standardmäßig werden Inhaltsskripts eingefügt, wenn das Dokument und alle Ressourcen vollständig geladen sind. Sie befinden sich in einer privaten, isolierten Ausführungsumgebung, auf die die Seite oder andere Erweiterungen nicht zugreifen können. Sie können diese Standardeinstellungen in den folgenden Schlüsseln ändern:
"run_at"–document_start|document_end|document_idle- Optional. Gibt an, wann das Script in die Seite eingefügt werden soll. Sie entspricht den Ladestatus von Document.readyState:
"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. Der Standardwert ist
"ISOLATED", die Ausführungsumgebung, die für das Inhaltsskript eindeutig ist. Wenn Sie die"MAIN"-Welt auswählen, teilt das Script die Ausführungsumgebung mit dem JavaScript der Hostseite. Weitere Informationen finden Sie unter In isolierten Welten arbeiten.
Beispiel
In der Anleitung Auf jeder Seite ausführen erfahren Sie, wie Sie eine Erweiterung erstellen, die ein Inhaltsskript in das Manifest einfügt.