contentScripts.register()

Verwenden Sie diese Funktion, um ein oder mehrere Inhaltsskripte zu registrieren.

Sie akzeptiert einen Parameter, der ein Objekt mit ähnlichen Eigenschaften wie die Objekte im content_scripts-Manifest-Schlüssel ist (aber beachten Sie, 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

js
let registering = browser.contentScripts.register(
  contentScriptOptions       // object
)

Parameter

contentScriptOptions

object. Ein RegisteredContentScriptOptions-Objekt, das die zu registrierenden Inhaltsskripte darstellt. Es hat eine ähnliche Syntax wie die Objekte im Array des content_scripts-Manifestschlüssels. Die Unterschiede sind:

  • Eigenschaftsnamen verwenden camel case, anstatt Unterstriche (snake case) — zum Beispiel excludeMatches, nicht exclude_matches.
  • Die js- und css-Eigenschaften ermöglichen es Ihnen, sowohl Zeichenfolgen als auch URLs zu registrieren, daher muss ihre Syntax diese Typen unterscheiden.

Das RegisteredContentScriptOptions-Objekt hat die folgenden Eigenschaften:

allFrames Optional

Entspricht all_frames im content_scripts-Schlüssel.

cookieStoreId Optional

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-kontextuellen Identitätstabs, private Browsing-Tabs (wenn die Erweiterung im privaten Modus aktiviert ist), die Tabs einer kontextuellen Identität oder eine Kombination davon zu registrieren. Weitere Informationen finden Sie unter Arbeiten mit kontextuellen Identitäten.

css Optional

Ein Array von Objekten. Jedes Objekt hat entweder eine Eigenschaft namens file, die eine URL ist, die beim Manifest der Erweiterung beginnt und auf eine zu registrierende CSS-Datei zeigt, oder eine Eigenschaft namens code, die einige zu registrierende CSS-Code enthält.

excludeGlobs Optional

Entspricht exclude_globs im content_scripts-Schlüssel.

excludeMatches Optional

Entspricht exclude_matches im content_scripts-Schlüssel.

includeGlobs Optional

Entspricht include_globs im content_scripts-Schlüssel.

js Optional

Ein Array von Objekten. Jedes Objekt hat entweder eine Eigenschaft namens file, die eine URL ist, die beim Manifest der Erweiterung beginnt und auf eine zu registrierende JavaScript-Datei zeigt, oder eine Eigenschaft namens code, die einige zu registrierende JavaScript-Code enthält.

matchAboutBlank Optional

Entspricht match_about_blank im content_scripts-Schlüssel.

matchOriginAsFallback Optional

Entspricht match_origin_as_fallback im content_scripts-Schlüssel.

matches

Entspricht matches im content_scripts-Schlüssel.

runAt Optional

Entspricht run_at im content_scripts-Schlüssel.

world Optional

Die Ausführungsumgebung, in der ein Skript ausgeführt werden soll. Entspricht world im content_scripts-Schlüssel.

Rückgabewert

Ein Promise, das mit einem contentScripts.RegisteredContentScript Objekt erfüllt wird, mit dem Sie die Inhaltsskripte abmelden können.

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 so lange besteht, wie Sie möchten, dass die Inhaltsskripte registriert bleiben.

Browser-Kompatibilität

Beispiele

Dieses Beispiel registriert das defaultCode Inhaltsskript für alle .org URLs:

js
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 bei content_scripts/example.js:

js
const scriptObj = await browser.contentScripts.register({
  js: [{ file: "/content_scripts/example.js" }],
  matches: ["<all_urls>"],
  allFrames: true,
  runAt: "document_start",
});

Beispielerweiterungen