Ein Favicon (Kurzform für „Favoritensymbol“) ist ein kleines Symbol, das in der Adressleiste des Browsers angezeigt wird. Favicons werden in der Regel verwendet, um Websites zu identifizieren und voneinander zu unterscheiden. In diesem Artikel wird beschrieben, wie Sie das Favicon einer Website in einer Manifest V3-Erweiterung abrufen.
Auf das Favicon einer Website zugreifen
Um das Favicon einer Website abzurufen, müssen Sie die folgende URL erstellen:
chrome-extension://EXTENSION_ID/_favicon/?pageUrl=EXAMPLE_URL&size=FAV_SIZE
EXTENSION_ID
- Die ID Ihrer Erweiterung.
EXAMPLE_URL
- Die URL der Favicon-Website.
FAV_SIZE
- Die Größe des Favicons. Die gängigste Größe ist 16 × 16 Pixel.
In den folgenden Schritten wird beschrieben, wie Sie diese URL in einer Chrome-Erweiterung erstellen:
Schritt 1: Manifest aktualisieren
Zuerst müssen Sie die Berechtigung "favicon"
im Manifest anfordern.
{
"name": "Favicon API in a popup",
"manifest_version": 3,
...
"permissions": ["favicon"],
...
}
Wenn Inhaltsscripts favicons abrufen, muss der Ordner "_favicon/*"
außerdem als webzugängliche Ressource deklariert werden. Beispiel:
{
"name": "Favicon API in content scripts",
"manifest_version": 3,
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"permissions": ["favicon"],
"web_accessible_resources": [
{
"resources": ["_favicon/*"],
"matches": ["<all_urls>"],
"extension_ids": ["*"]
}
]
...
}
Schritt 2: URL erstellen
Die folgende Funktion verwendet runtime.getURL()
, um eine voll qualifizierte URL zu erstellen, die auf den Ordner "_favicon/"
verweist. Anschließend wird ein neuer String zurückgegeben, der die URL mit mehreren Suchparametern darstellt. Schließlich hängt die Erweiterung das Bild an den Textkörper an.
function faviconURL(u) {
const url = new URL(chrome.runtime.getURL("/_favicon/"));
url.searchParams.set("pageUrl", u);
url.searchParams.set("size", "32");
return url.toString();
}
const img = document.createElement('img');
img.src = faviconURL("https://www.google.com")
document.body.appendChild(img);
In diesem Beispiel ist eine www.google.com
-URL für ein 32-Pixel-Favicon zu sehen, die eine zufällige Erweiterungs-ID enthält:
chrome-extension://eghkbfdcoeikaepkldhfgphlaiojonpc/_favicon/?pageUrl=https%3A%2F%2Fwww.google.com&size=32
Beispiele für Erweiterungen
Im Repository chrome-extension-samples finden Sie zwei favicon-Beispiele:
- Beispiel für ein Pop-up für das Favicon
- Beispiel für ein Favicon-Inhaltsskript