Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Erweiterungsseiten

Sie können HTML-Seiten in Ihre Erweiterung integrieren, um Formulare, Hilfsinhalte oder andere Inhalte bereitzustellen, die Ihre Erweiterung benötigt.

Beispiel einer einfachen gebündelten Seite, die als abgetrenntes Panel angezeigt wird.

Diese Seiten haben ebenfalls Zugriff auf die gleichen privilegierten JavaScript-APIs, die für die Hintergrundskripte Ihrer Erweiterung verfügbar sind. Sie befinden sich jedoch in ihrem eigenen Tab, mit ihrer eigenen JavaScript-Ereigniswarteschlange, ihren eigenen globalen Variablen usw.

Betrachten Sie die Hintergrundseite als eine "versteckte Erweiterungsseite".

Festlegen von Erweiterungsseiten

Sie können HTML-Dateien – und die zugehörigen CSS- oder JavaScript-Dateien – in Ihre Erweiterung einbinden. Die Dateien können im Root-Verzeichnis enthalten sein oder in sinnvollen Unterordnern organisiert werden.

/my-extension
    /manifest.json
    /my-page.html
    /my-page.js

Anzeigen von Erweiterungsseiten

Es gibt zwei Optionen zum Anzeigen von Erweiterungsseiten: windows.create() und tabs.create().

Mit windows.create(), können Sie zum Beispiel eine HTML-Seite in einem abgetrennten Fenster öffnen (ein Fenster ohne die normale Browser-Benutzeroberfläche wie Adressleiste, Lesezeichenleiste usw.), um eine dialogähnliche Benutzererfahrung zu schaffen:

js
let createData = {
  type: "detached_panel",
  url: "my-page.html",
  width: 250,
  height: 100,
};
let creating = browser.windows.create(createData);

Wenn das Fenster nicht mehr benötigt wird, kann es programmgesteuert geschlossen werden.

Zum Beispiel, nachdem der Benutzer auf eine Schaltfläche geklickt hat, können Sie die ID des aktuellen Fensters an windows.remove() übergeben:

js
document.getElementById("close-me").addEventListener("click", () => {
  let winId = browser.windows.WINDOW_ID_CURRENT;
  let removing = browser.windows.remove(winId);
});

Erweiterungsseiten und Verlauf

Standardmäßig werden Seiten, die Sie auf diese Weise öffnen, im Verlauf des Benutzers gespeichert, genau wie normale Webseiten. Wenn Sie dieses Verhalten nicht wünschen, verwenden Sie history.deleteUrl(), um den Eintrag im Browserverlauf zu entfernen:

js
function onVisited(historyItem) {
  if (historyItem.url === browser.runtime.getURL(myPage)) {
    browser.history.deleteUrl({ url: historyItem.url });
  }
}

browser.history.onVisited.addListener(onVisited);

Um die History-API zu verwenden, müssen Sie die "history"- Berechtigung in Ihrer manifest.json-Datei anfordern.

Webseitendesign

Für Details, wie Sie das Design Ihrer Webseite an den Stil von Firefox anpassen können, siehe das Acorn Design System.

Beispiele

Das webextensions-examples Repository auf GitHub enthält das window-manipulator Beispiel, das mehrere Optionen zur Erstellung von Fenstern implementiert.