Der einfache Weg zur Google-Chrome-Erweiterung
Kommentare

background.html: die Hintergrundseite
Die Hintergrundseite background.html enthält in dieser Erweiterung lediglich JavaScript. Dieses Skript wartet darauf, dass das Inhaltsskript hCard-Finder.js Daten

background.html: die Hintergrundseite

Die Hintergrundseite background.html enthält in dieser Erweiterung lediglich JavaScript. Dieses Skript wartet darauf, dass das Inhaltsskript hCard-Finder.js Daten sendet, verarbeitet die übergebenen Informationen und stellt diese anschließend dem Standard-Pop-up der Seitenaktion (popup.html) zur Verfügung.

Übernehmen Sie den JavaScript-Code aus Listing 3 in die background.html. Beachten Sie Folgendes: Da es sich hierbei um eine HTML-Datei handelt, muss der Programmcode in Script Tags gesetzt werden.

Zuerst wird ein leeres Objekt forPopup definiert, das Daten für das Standard-Pop-up zur Verfügung stellt. Mittels chrome.extension.onRequest.addListener(function onRequest() {}) wird ein so genannter Event Listener erstellt. Die enthaltene Funktion wird ausgeführt, wenn Daten vom Inhaltsskript via chrome.extension.sendRequest() gesendet wurden. Es sind drei Parameter gegeben:

Listing 3
 
  • fromContentScript ist das Objekt, das vom Inhaltsskript übergeben wurde. Es enthält die hCards, die als Text im JSON-Format definiert sind. Sie wurden in der hCard-Finder.js dem Objekt toBackground hinzugefügt.
  • messageSender ist ebenfalls ein Objekt, das Informationen über den Kontext des Absenders, also den Inhaltsskript sowie den Tab enthält.
  • sendResponse definiert eine Funktion, die genutzt wird, um dem Sender eine Antwort zu schicken.

In der Variable tabId wird die eindeutige Identifikationsnummer des Tabs gespeichert, in dem das Content Script eine oder mehrere hCards gefunden hat. Im leeren Objekt forPopup wird mit einem Index gleich der Identifikationsnummer des Tabs ein weiteres leeres Objekt abgelegt, ähnlich einem mehrdimensionalen Array.

Diese eindeutige Zuweisung des Tabs ist wichtig, da wie zuvor erwähnt pro Erweiterung nur eine Hintergrundseite läuft und diese gegebenenfalls mehrere Browser-Tabs mit den richtigen Daten bedienen muss. Mit einer For-Schleife wird fromContentScript durchlaufen.

Dem zuvor erstellten, leeren Objekt forPopup[tabId] wird der aktuell durchlaufene Inhalt des Objekts fromContentScript übergeben und mit dem Zähler i ergänzt. Mit chrome.pageAction.show(tabId) wird im sendenden Tab die popup.html angezeigt. sendResponse(undefined) sendet keine Antwort, gibt jedoch lokale Ressourcen frei.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -