userScripts.register() (Legacy)
Warnung:
Dies ist die Dokumentation für die veraltete userScripts
API. Sie ist in Firefox für Manifest V2 verfügbar. Für Funktionalität mit Benutzerskripten in Manifest V3 siehe die neue userScripts
API.
Diese Methode ermöglicht es, Benutzerskripte von den Seiten einer Erweiterung aus zu registrieren (wie z.B. die Hintergrundseite).
Diese Methode ist der contentScripts.register()
API-Methode sehr ähnlich (z.B. geben beide ein Versprechen zurück, das zu einem API-Objekt mit einer unregister()
-Methode aufgelöst wird, um das Skript zu deregistrieren). 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
. Repräsentiert die zu registrierenden Benutzerskripte. Es hat eine ähnliche Syntax wiecontentScripts.register()
.Das
UserScriptOptions
-Objekt hat die folgenden Eigenschaften:scriptMetadata
Optional-
Ein
JSON
-Objekt mit beliebigen Metadateneigenschaften, die den registrierten Benutzerskripten zugeordnet sind. Obwohl beliebig, muss das Objekt serialisierbar sein, sodass es mit dem Structured Clone Algorithmus kompatibel ist. Diese Metadaten werden verwendet, um Details vom Skript an das API-Skript zu übermitteln. Zum Beispiel zur Bereitstellung von Details zu einer Untermenge der APIs, die vom API-Skript injiziert werden müssen. Die API selbst 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 die Registrierung von Skripten für alle Standard- oder nicht-kontextbezogenen Identitäts-Tabs, private Browsing-Tabs (wenn die Erweiterung im privaten Browsing aktiviert ist), die Tabs einer kontextuellen Identität oder eine Kombination davon.
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 darstellt, die bei der manifest.json der Erweiterung beginnt und auf eine JavaScript-Datei zeigt, 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
bereitgestellten URL-Muster müssen durch die im Manifestpermission
definierten Host-Berechtigungen aktiviert oder vom Benutzer aus der Liste deroptional_permissions
aktiviert sein. Zum Beispiel, wenn matcheshttps://mozilla.org/a
enthält, wird ein Skript nur registriert, wenn die Host-Berechtigungen beispielsweisehttps://mozilla.org/*
enthalten. Wenn das URL-Muster nicht aktiviert ist, schlägt der Aufruf zur Registrierung 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 content script options hat das userScriptOptions-Objekt keine CSS-Eigenschaft. Verwenden Sie contentScripts.register()
, um Stylesheets dynamisch zu registrieren und zu deregistrieren.
Rückgabewert
Ein Promise
, das mit einem RegisteredUserScript
-Objekt erfüllt wird, das zum Deregistrieren der Benutzerskripte verwendet wird.
Hinweis: Benutzerskripte werden abgemeldet, wenn die zugehörige Erweiterungsseite (von der die Benutzerskripte registriert wurden) entladen wird, daher sollten Sie Benutzerskripte von einer Erweiterungsseite aus registrieren, die mindestens so lange bestehen bleibt, wie Sie die Benutzerskripte registriert bleiben sollen.
Browser-Kompatibilität
Loading…