tabs.insertCSS()
Fügt CSS in eine Seite ein.
Hinweis:
Verwenden Sie bei Manifest V3 oder höher scripting.insertCSS() und scripting.removeCSS(), um CSS einzufügen und zu entfernen.
Um diese Methode zu verwenden, benötigen Sie eine Berechtigung für die URL der Seite – entweder ausdrücklich als Host-Berechtigung oder über die activeTab-Berechtigung.
Sie können CSS nur in Seiten einfügen, deren URL sich durch ein Übereinstimmungsmuster ausdrücken lässt. Das bedeutet, dass ihr URL-Schema „http“, „https“ oder „file“ sein muss. Daher können Sie kein CSS in integrierte Browserseiten wie about:debugging, about:addons oder die Seite einfügen, die beim Öffnen eines neuen leeren Tabs angezeigt wird.
Hinweis: Firefox löst URLs in eingefügten CSS-Dateien relativ zur CSS-Datei selbst auf, nicht relativ zu der Seite, in die sie eingefügt wird.
Das eingefügte CSS kann durch Aufrufen von tabs.removeCSS() wieder entfernt werden.
Dies ist eine asynchrone Funktion, die eine Promise zurückgibt (nur in Firefox).
Syntax
let inserting = browser.tabs.insertCSS(
tabId, // optional integer
details // object
)
Parameter
tabIdOptional-
integer. Die ID des Tabs, in den das CSS eingefügt werden soll. Standardmäßig ist dies der aktive Tab des aktuellen Fensters. details-
Ein Objekt, das das einzufügende CSS beschreibt. Es enthält die folgenden Eigenschaften:
allFramesOptional-
boolean. Wenntrue, wird das CSS in alle Frames der aktuellen Seite eingefügt. Wennfalse, wird das CSS nur in den obersten Frame eingefügt. Der Standardwert istfalse. codeOptional-
string. Der einzufügende Code als Textzeichenfolge. cssOriginOptional-
string. Diese Eigenschaft kann einen von zwei Werten annehmen: „user“, um das CSS als Benutzer-Stylesheet hinzuzufügen, oder „author“, um es als Autor-Stylesheet hinzuzufügen. Wird diese Option weggelassen, wird das CSS als Autor-Stylesheet hinzugefügt.- „user“ ermöglicht es Ihnen, zu verhindern, dass Websites das eingefügte CSS überschreiben: siehe Kaskadierungsreihenfolge.
- „author“-Stylesheets verhalten sich so, als stünden sie nach allen von der Webseite festgelegten Autor-Regeln. Dies gilt auch für Autor-Stylesheets, die durch Skripte der Seite dynamisch hinzugefügt werden – selbst wenn dies erst nach Abschluss des
insertCSS-Aufrufs geschieht.
fileOptional-
string. Pfad zu einer Datei mit dem einzufügenden Code. In Firefox werden relative URLs relativ zur URL der aktuellen Seite aufgelöst. In Chrome werden diese URLs relativ zur Basis-URL der Erweiterung aufgelöst. Damit dies browserübergreifend funktioniert, können Sie den Pfad als absolute URL angeben, die beim Stammverzeichnis der Erweiterung beginnt, zum Beispiel:"/path/to/stylesheet.css". frameIdOptional-
integer. Der Frame, in den das CSS eingefügt werden soll. Der Standardwert ist0(der oberste Frame). matchAboutBlankOptional-
boolean. Wenntrue, wird der Code in eingebettete „about:blank“- und „about:srcdoc“-Frames eingefügt, sofern Ihre Erweiterung Zugriff auf deren übergeordnetes Dokument hat. In about:-Frames auf oberster Ebene kann der Code nicht eingefügt werden. Der Standardwert istfalse. runAtOptional-
extensionTypes.RunAt. Der früheste Zeitpunkt, zu dem der Code in den Tab eingefügt wird. Der Standardwert ist „document_idle“.
Rückgabewert
Eine Promise, die ohne Argumente erfüllt wird, sobald das gesamte CSS eingefügt wurde. Tritt ein Fehler auf, wird die Promise mit einer Fehlermeldung zurückgewiesen.
Beispiele
Dieses Beispiel fügt CSS aus einer Zeichenfolge in den aktuell aktiven Tab ein.
let css = "body { border: 20px dotted pink; }";
browser.browserAction.onClicked.addListener(() => {
function onError(error) {
console.log(`Error: ${error}`);
}
let insertingCSS = browser.tabs.insertCSS({ code: css });
insertingCSS.then(null, onError);
});
Dieses Beispiel fügt CSS aus einer Datei ein, die mit der Erweiterung ausgeliefert wird. Das CSS wird in den Tab mit der ID 2 eingefügt:
browser.browserAction.onClicked.addListener(() => {
function onError(error) {
console.log(`Error: ${error}`);
}
let insertingCSS = browser.tabs.insertCSS(2, { file: "content-style.css" });
insertingCSS.then(null, onError);
});
Beispielerweiterungen
Browser-Kompatibilität
Hinweis:
Diese API basiert auf der chrome.tabs-API von Chromium. Diese Dokumentation wurde aus tabs.json im Chromium-Code abgeleitet.