Der einfache Weg zur Google-Chrome-Erweiterung
Kommentare

hCard-Finder.js: das Inhaltsskript
Innerhalb des Verzeichnisses /js/ erstellen Sie eine JavaScript-Datei mit dem in der manifest.json definierten Namen hCard-Finder.js. Sie enthält den Programmcode, der

hCard-Finder.js: das Inhaltsskript

Innerhalb des Verzeichnisses /js/ erstellen Sie eine JavaScript-Datei mit dem in der manifest.json definierten Namen hCard-Finder.js. Sie enthält den Programmcode, der nötig ist, um vorhandene hCards aus dem Quelltext der aktuellen Webseite zu extrahieren und an die Hintergrundseite (background.html) weiterzugeben. Dank des zuvor geladenen Microformat Shiv müssen Sie keine Arbeit in das Parsen des HTML stecken, um an die individuellen Werte der hCard (wie fn, org oder tel) zu kommen (Abb. 1).

Abb. 3: Screenshot der AS7 Admin-Konsole. (Vergrößern)

Sie haben beim Programmieren von Google-Chrome-Erweiterungen vollen Zugriff auf jede JavaScript-Funktion, die der Browser beherrscht. Zusätzlich gibt es noch eine Reihe weiterer Funktionen, die nur bei der Entwicklung von Erweiterungen verfügbar sind.

Diese JavaScript-Funktionen können Sie wie immer in der zuvor genannten Dokumentation unter [8] nachschlagen. Übernehmen Sie aus Listing 2 den JavaScript-Code in die hCard-Finder.js.

Listing 2
var hCards = document.getElementsByClassName("vcard");
var toBackground = {};

for (var i = 0; i  0) {
 chrome.extension.sendRequest(toBackground);
}

Zuerst werden alle Elemente mit der Klasse vcard, die eine hCard im HTML auszeichnet, in der Variablen hCards als so genannte NodeList zwischengespeichert. Das ist dank der modernen Funktion document.getElementsByClassName() kein Problem.

Für die Übergabe zur Hintergrundseite definieren Sie ein leeres Objekt toBackground. Mit einer For-Schleife werden alle Elemente von hCards durchlaufen. In der Variable hCard wird ein von Microformat Shiv geparstes hCard-Objekt gespeichert, das sich auf den aktuellen Durchlauf bezieht.

Somit ist es kein Problem, wenn mehrere hCards auf einer Seite definiert sind. In jsonText wird das hCard-Objekt mittels der JavaScript-Funktion JSON.stringify() in einen durch JSON formatierten String umgewandelt. jsonText wird anschließend dem Objekt toBackground mit dem aktuellen Zähler i hinzugefügt.

Mittels Object.keys(toBackground).length überprüfen Sie, ob toBackground gefüllt ist und somit eine oder mehrere hCards gefunden wurden. Wenn das der Fall ist, wird dieses Objekt via chrome.extension.sendRequest() an die background.html geschickt, die Sie zuvor in der manifest.json als Hintergrundseite definiert haben.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -