contentScripts.register()

Verwenden Sie diese Funktion, um ein oder mehrere Inhalts-Skripte zu registrieren.

Sie akzeptiert einen Parameter, der ein Objekt mit ähnlichen Eigenschaften wie die Objekte in dem 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 einzelnes 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 Inhalts-Skripte darstellt. Es hat eine ähnliche Syntax wie die Objekte im Array des content_scripts Manifest-Schlüssels. Die Unterschiede sind:

  • Eigenschaftsnamen verwenden das Camel Case, anstelle von Unterstrichen (Snake Case) — zum Beispiel excludeMatches, nicht exclude_matches.
  • Die Eigenschaften js und css erlauben es Ihnen, sowohl Strings als auch URLs zu registrieren, sodass ihre Syntax diese Typen unterscheiden muss.

Das RegisteredContentScriptOptions-Objekt hat die folgenden Eigenschaften:

allFrames Optional

Dasselbe wie all_frames im content_scripts-Schlüssel.

cookieStoreId Optional

Ein String oder ein Array von Strings. Registriert das Inhalts-Skript 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äts-Tabs, Private-Browsing-Tabs (wenn die Erweiterung im privaten Browsen aktiviert ist), die Tabs einer kontextuellen Identität oder eine Kombination dieser 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, beginnend beim manifest.json der Erweiterung und zu einer zu registrierenden CSS-Datei zeigend, oder eine Eigenschaft namens code, die zu registrierender CSS-Code ist.

excludeGlobs Optional

Dasselbe wie exclude_globs im content_scripts-Schlüssel.

excludeMatches Optional

Dasselbe wie exclude_matches im content_scripts-Schlüssel.

includeGlobs Optional

Dasselbe wie 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, beginnend beim manifest.json der Erweiterung und zu einer zu registrierenden JavaScript-Datei zeigend, oder eine Eigenschaft namens code, die zu registrierender JavaScript-Code ist.

matchAboutBlank Optional

Dasselbe wie match_about_blank im content_scripts-Schlüssel.

matchOriginAsFallback Optional

Dasselbe wie match_origin_as_fallback im content_scripts-Schlüssel.

matches

Dasselbe wie matches im content_scripts-Schlüssel.

runAt Optional

Dasselbe wie run_at im content_scripts-Schlüssel.

world Optional

Die Ausführungsumgebung für ein Skript, das in ausgeführt werden soll. Dasselbe wie world im content_scripts-Schlüssel.

Rückgabewert

Ein Promise, das mit einem contentScripts.RegisteredContentScript-Objekt erfüllt wird, das Sie verwenden können, um die Inhalts-Skripte abzumelden.

Derzeit werden Inhalts-Skripte abgemeldet, wenn die zugehörige Erweiterungsseite (von der die Inhalts-Skripte registriert wurden) entladen wird, daher sollten Sie ein Inhalts-Skript von einer Erweiterungsseite registrieren, die zumindest so lange bestehen bleibt, wie Sie möchten, dass die Inhalts-Skripte registriert bleiben.

Browser-Kompatibilität

BCD tables only load in the browser

Beispiele

Dieses Beispiel registriert das defaultCode Inhalts-Skript 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",
});

Beispiel-Erweiterungen