userScripts.register()
Diese Methode ermöglicht es, Benutzerskripte von den Seiten einer Erweiterung (wie der Hintergrundseite) zu registrieren.
Diese Methode ist sehr ähnlich zur contentScripts.register()
API-Methode (beispielsweise geben beide ein Versprechen zurück, das in ein API-Objekt aufgelöst wird, welches eine unregister()
-Methode zum Abmelden des Skripts enthält). Es gibt jedoch Unterschiede in den unterstützten Optionen.
Dies ist eine asynchrone Methode, die ein Promise
zurückgibt.
Syntax
const registeredUserScript = await browser.userScripts.register(
userScriptOptions // object
);
// …
await registeredUserScript.unregister();
Parameter
userScriptOptions
-
object
. Stellt die zu registrierenden Benutzerskripte dar. Es hat eine ähnliche Syntax wiecontentScripts.register()
.Das
UserScriptOptions
-Objekt hat die folgenden Eigenschaften:scriptMetadata
Optional-
Ein
JSON
-Objekt, das beliebige Metadateneigenschaften enthält, die mit den registrierten Benutzerskripten verbunden sind. Dieses Objekt muss jedoch serialisierbar sein, um mit dem strukturieren Klon-Algorithmus kompatibel zu sein. Diese Metadaten werden verwendet, um Details vom Skript an das API-Skript zu übermitteln. Zum Beispiel, um Details zu einer Teilmenge der APIs bereitzustellen, die vom API-Skript injiziert werden müssen. Die API verwendet diese Metadaten nicht. allFrames
Optional-
Entspricht
all_frames
im Schlüsselcontent_scripts
. -
Ein Array von Cookie-Store-ID-Strings oder ein String, der eine Cookie-Store-ID enthält. Registriert das Benutzerskript in den Tabs, die zu den Cookie-Store-IDs gehören. Dies ermöglicht es, Skripte für alle Standard- oder nicht kontextuellen Identitätstabs, private Browsing-Tabs (wenn die Erweiterung im privaten Modus aktiviert ist), die Tabs einer kontextuellen Identität, oder eine Kombination daraus zu registrieren.
excludeGlobs
Optional-
Entspricht
exclude_globs
im Schlüsselcontent_scripts
. excludeMatches
Optional-
Entspricht
exclude_matches
im Schlüsselcontent_scripts
. includeGlobs
Optional-
Entspricht
include_globs
im Schlüsselcontent_scripts
. js
-
Ein Array von Objekten. Jedes Objekt hat entweder eine Eigenschaft namens
file
, die eine URL ab demmanifest.json
der Erweiterung ist und auf eine JavaScript-Datei verweist, die registriert werden soll, oder eine Eigenschaft namenscode
, die JavaScript-Code enthält, der registriert werden soll. matchAboutBlank
Optional-
Entspricht
match_about_blank
im Schlüsselcontent_scripts
. matches
-
Entspricht
matches
im Schlüsselcontent_scripts
. Die inmatches
angegebenen URL-Muster müssen durch die Host-Berechtigungen aktiviert sein, die in der Manifest-Eigenschaftpermission
definiert sind, oder vom Benutzer aus der Liste deroptional_permissions
aktiviert werden. Zum Beispiel, wennmatches
https://mozilla.org/a
enthält, wird ein Skript nur registriert, wenn Host-Berechtigungen beispielsweisehttps://mozilla.org/*
beinhalten. Wenn das URL-Muster nicht aktiviert ist, schlägt der Registrierungsaufruf mit dem Fehler "Permission denied to register a user script for ORIGIN" fehl. runAt
Optional-
Entspricht
run_at
im Schlüsselcontent_scripts
.
Im Gegensatz zu den Optionen von Inhalteskripten hat das userScriptOptions-Objekt keine CSS-Eigenschaft. Verwenden Sie contentScripts.register()
, um Stylesheets dynamisch zu registrieren und abzumelden.
Rückgabewert
Ein Promise
, das mit einem RegisteredUserScript
-Objekt erfüllt wird, das verwendet wird, um die Benutzerskripte abzumelden.
Hinweis: Benutzerskripte werden abgemeldet, wenn die zugehörige Erweiterungsseite (von der die Benutzerskripte registriert wurden) entladen wird. Daher sollten Sie Benutzerskripte von einer Erweiterungsseite registrieren, die mindestens so lange bestehen bleibt, wie Sie die Benutzerskripte registriert haben möchten.
Browser-Kompatibilität
BCD tables only load in the browser