contentScripts.register()
Verwenden Sie diese Funktion, um ein oder mehrere Content-Skripte zu registrieren.
Es akzeptiert ein Parameter, welcher ein Objekt mit ähnlichen Eigenschaften wie die Objekte im content_scripts
-Manifest-Schlüssel ist (beachten Sie jedoch, dass content_scripts
ein Array von Objekten ist, während das Argument für register()
ein Objekt ist).
Dies ist eine asynchrone Funktion, die ein Promise
zurückgibt.
Syntax
let registering = browser.contentScripts.register(
contentScriptOptions // object
)
Parameter
contentScriptOptions
-
object
. EinRegisteredContentScriptOptions
-Objekt, das die zu registrierenden Content-Skripte darstellt. Es hat eine ähnliche Syntax wie die Objekte im Array descontent_scripts
-Manifests. Die Unterschiede sind:- Eigenschaftsnamen verwenden camel case anstelle von Unterstrichen (snake case) — zum Beispiel
excludeMatches
, nichtexclude_matches
. - Die Eigenschaften
js
undcss
erlauben es, sowohl Zeichenfolgen als auch URLs zu registrieren, weshalb ihre Syntax diese Typen unterscheiden muss.
Das
RegisteredContentScriptOptions
-Objekt hat folgende Eigenschaften:allFrames
Optional-
Gleiche wie
all_frames
imcontent_scripts
-Schlüssel. -
Eine Zeichenfolge oder ein Array von Zeichenfolgen. Registriert das Content-Skript in den Tabs, die zu einer oder mehreren Cookie-Store-IDs gehören. Dadurch können Skripte für alle Standard- oder nicht-kontextuellen Identitätstabs, private Browsing-Tabs (wenn die Erweiterung im privaten Browsen aktiviert ist), die Tabs einer kontextuellen Identität oder einer Kombination dieser registriert werden. Weitere Informationen finden Sie unter Arbeiten mit kontextuellen Identitäten.
css
Optional-
Ein Array von Objekten. Jedes Objekt hat entweder eine Eigenschaft namens
file
, welche eine URL ist, die vom Manifest der Erweiterung aus zu einer zu registrierenden CSS-Datei führt, oder eine Eigenschaft namenscode
, welche ein zu registrierender CSS-Code ist. cssOrigin
Optional-
string
. Der Stilursprung für die Injektion, entweder"user"
, um das CSS als Benutzer-Stylesheet hinzuzufügen, oder"author"
, um es als Autoren-Stylesheet hinzuzufügen. Standard ist"author"
. Diese Eigenschaft ist nicht case-sensitiv. excludeGlobs
Optional-
Gleiche wie
exclude_globs
imcontent_scripts
-Schlüssel. excludeMatches
Optional-
Gleiche wie
exclude_matches
imcontent_scripts
-Schlüssel. includeGlobs
Optional-
Gleiche wie
include_globs
imcontent_scripts
-Schlüssel. js
Optional-
Ein Array von Objekten. Jedes Objekt hat entweder eine Eigenschaft namens
file
, welche eine URL ist, die vom Manifest der Erweiterung aus zu einer zu registrierenden JavaScript-Datei führt, oder eine Eigenschaft namenscode
, welche ein zu registrierender JavaScript-Code ist. matchAboutBlank
Optional-
Gleiche wie
match_about_blank
imcontent_scripts
-Schlüssel. matchOriginAsFallback
Optional-
Gleiche wie
match_origin_as_fallback
imcontent_scripts
-Schlüssel. matches
-
Gleiche wie
matches
imcontent_scripts
-Schlüssel. runAt
Optional-
Gleiche wie
run_at
imcontent_scripts
-Schlüssel. world
Optional-
Die Ausführungsumgebung, in der ein Skript ausgeführt werden soll. Gleiche wie
world
imcontent_scripts
-Schlüssel.
- Eigenschaftsnamen verwenden camel case anstelle von Unterstrichen (snake case) — zum Beispiel
Rückgabewert
Ein Promise
, das mit einem contentScripts.RegisteredContentScript
-Objekt erfüllt wird, das Sie verwenden können, um die Content-Skripte wieder abzumelden.
Derzeit werden Content-Skripte abgemeldet, wenn die zugehörige Erweiterungsseite (von der die Content-Skripte registriert wurden) entladen wird. Daher sollten Sie ein Content-Skript von einer Erweiterungsseite registrieren, die mindestens so lange besteht, wie die Content-Skripte registriert bleiben sollen.
Beispiele
Dieses Beispiel registriert das defaultCode
-Content-Skript für alle .org
-URLs:
const defaultHosts = "*://*.org/*";
const defaultCode =
"document.body.innerHTML = '<h1>This page has been eaten<h1>'";
async function register(hosts, code) {
return await browser.contentScripts.register({
matches: [hosts],
js: [{ code }],
runAt: "document_idle",
});
}
let registered = register(defaultHosts, defaultCode);
Dieser Code registriert die JS-Datei unter content_scripts/example.js:
const scriptObj = await browser.contentScripts.register({
js: [{ file: "/content_scripts/example.js" }],
matches: ["<all_urls>"],
allFrames: true,
runAt: "document_start",
});
Beispielerweiterungen
Browser-Kompatibilität
Loading…