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
let registering = browser.contentScripts.register(
contentScriptOptions // object
)
Parameter
contentScriptOptions
-
object
. EinRegisteredContentScriptOptions
-Objekt, das die zu registrierenden Inhalts-Skripte darstellt. Es hat eine ähnliche Syntax wie die Objekte im Array descontent_scripts
Manifest-Schlüssels. Die Unterschiede sind:- Eigenschaftsnamen verwenden das Camel Case, anstelle von Unterstrichen (Snake Case) — zum Beispiel
excludeMatches
, nichtexclude_matches
. - Die Eigenschaften
js
undcss
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
imcontent_scripts
-Schlüssel. -
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 namenscode
, die zu registrierender CSS-Code ist. excludeGlobs
Optional-
Dasselbe wie
exclude_globs
imcontent_scripts
-Schlüssel. excludeMatches
Optional-
Dasselbe wie
exclude_matches
imcontent_scripts
-Schlüssel. includeGlobs
Optional-
Dasselbe wie
include_globs
imcontent_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 namenscode
, die zu registrierender JavaScript-Code ist. matchAboutBlank
Optional-
Dasselbe wie
match_about_blank
imcontent_scripts
-Schlüssel. matchOriginAsFallback
Optional-
Dasselbe wie
match_origin_as_fallback
imcontent_scripts
-Schlüssel. matches
-
Dasselbe wie
matches
imcontent_scripts
-Schlüssel. runAt
Optional-
Dasselbe wie
run_at
imcontent_scripts
-Schlüssel. world
Optional-
Die Ausführungsumgebung für ein Skript, das in ausgeführt werden soll. Dasselbe wie
world
imcontent_scripts
-Schlüssel.
- Eigenschaftsnamen verwenden das 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 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:
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:
const scriptObj = await browser.contentScripts.register({
js: [{ file: "/content_scripts/example.js" }],
matches: ["<all_urls>"],
allFrames: true,
runAt: "document_start",
});