contentScripts.register()
Verwenden Sie diese Funktion, um ein oder mehrere Inhalte-Skripte zu registrieren.
Es akzeptiert einen Parameter, der 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 einziges Objekt ist).
Die Erweiterung muss die entsprechenden Host-Berechtigungen für die Muster in contentScriptOptions besitzen, sonst wird der API-Aufruf abgelehnt.
Syntax
let registering = browser.contentScripts.register(
  contentScriptOptions       // object
)
Parameter
contentScriptOptions- 
object. EinRegisteredContentScriptOptionsObjekt, das die zu registrierenden Inhaltsskripte darstellt. Es hat eine ähnliche Syntax wie die Objekte im Array descontent_scriptsManifests. Die Unterschiede sind:- Eigenschaftsnamen verwenden camel case anstelle von Unterstrichen (snake case) — zum Beispiel 
excludeMatchesstattexclude_matches. - Die Eigenschaften 
jsundcsserlauben es, Strings ebenso wie URLs zu registrieren, daher muss ihre Syntax diese Typen unterscheiden. 
Das
RegisteredContentScriptOptionsObjekt hat folgende Eigenschaften:allFramesOptional- 
Entspricht
all_framesimcontent_scriptsSchlüssel. - 
Ein String oder Array von Strings. Registriert das Inhaltsskript in den Tabs, die zu einer oder mehreren Cookie-Store-IDs gehören. Dies ermöglicht es, Skripte für alle Standard- oder nicht-kontextbezogenen Identitäts-Tabs, Tabs im privaten Modus (wenn die Erweiterung im privaten Modus aktiv ist), Tabs einer kontextuellen Identität oder eine Kombination dieser zu registrieren. Siehe Arbeiten mit kontextuellen Identitäten für mehr Informationen.
 cssOptional- 
Ein Array von Objekten. Jedes Objekt hat entweder eine Eigenschaft namens
file, die eine URL ist, beginnend beim Manifest.json der Erweiterung und auf eine zu registrierende CSS-Datei zeigend, oder eine Eigenschaft namenscode, was etwas zu registrierender CSS-Code ist. cssOriginOptional- 
string. Der Stil-Ursprung für die Injektion, entweder"user", um das CSS als Benutzerstilblatt hinzuzufügen, oder"author", um es als Autorenstilblatt hinzuzufügen. Standard ist"author". Diese Eigenschaft ist nicht groß-/kleinschreibungsempfindlich. excludeGlobsOptional- 
Entspricht
exclude_globsimcontent_scriptsSchlüssel. excludeMatchesOptional- 
Entspricht
exclude_matchesimcontent_scriptsSchlüssel. includeGlobsOptional- 
Entspricht
include_globsimcontent_scriptsSchlüssel. jsOptional- 
Ein Array von Objekten. Jedes Objekt hat entweder eine Eigenschaft namens
file, die eine URL ist, beginnend beim Manifest.json der Erweiterung und auf eine zu registrierende JavaScript-Datei zeigend, oder eine Eigenschaft namenscode, was etwas zu registrierender JavaScript-Code ist. matchAboutBlankOptional- 
Entspricht
match_about_blankimcontent_scriptsSchlüssel. matchOriginAsFallbackOptional- 
Entspricht
match_origin_as_fallbackimcontent_scriptsSchlüssel. matches- 
Entspricht
matchesimcontent_scriptsSchlüssel. runAtOptional- 
Entspricht
run_atimcontent_scriptsSchlüssel. worldOptional- 
Die Ausführungsumgebung, in der ein Skript ausgeführt werden soll. Entspricht
worldimcontent_scriptsSchlü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 Inhaltsskripte abzumelden.
Derzeit werden Inhaltsskripte abgemeldet, wenn die zugehörige Erweiterungsseite (von der die Inhaltsskripte registriert wurden) entladen wird, daher sollten Sie ein Inhaltsskript von einer Erweiterungsseite registrieren, die mindestens so lange bestehen bleibt, wie Sie möchten, dass die Inhaltsskripte registriert bleiben.
Beispiele
Dieses Beispiel registriert das defaultCode Inhaltsskript 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…