Signatur
Beschreibung
Die schreibgeschützte Eigenschaft document.plugins liefert eine HTMLCollection mit allen HTMLEmbedElement-Objekten, also allen <embed>-Elementen im Dokument, in Dokumentreihenfolge. Sie verhält sich genauso wie document.embeds. Laut HTML-Spezifikation geben beide Eigenschaften sogar dasselbe Collection-Objekt zurück.
Die Collection ist live: Fügen Sie <embed>-Elemente hinzu oder entfernen Sie welche, passt sie sich automatisch an. Einzelne Einträge erreichen Sie per Index (plugins[0]), über item() oder über namedItem() anhand von id oder name.
Nicht verwechseln mit navigator.plugins: Das liefert ein PluginArray mit den im Browser installierten Plugins, nicht die Elemente im Dokument. Heute nutzt man document.plugins vor allem in älterem Code oder Werkzeugen, die eingebettete Inhalte wie PDFs oder SVGs in <embed> finden. In neuem Code ist document.embeds oder querySelectorAll('embed') klarer.
Rückgabewert
HTMLCollection aller <embed>-Elemente im Dokument. Gibt es keine, ist sie leer (length === 0).Beispiele
Alle eingebetteten Inhalte auflisten
// HTML: <embed id="handbuch" src="handbuch.pdf" type="application/pdf">
// <embed src="grafik.svg" type="image/svg+xml">
const embeds = document.plugins;
console.log(`Anzahl: ${embeds.length}`);
for (const embed of embeds) {
console.log(embed.type, embed.src);
}
Zugriff über namedItem() und Vergleich mit document.embeds
const handbuch = document.plugins.namedItem('handbuch');
console.log(handbuch?.src ?? 'nicht gefunden');
// Laut Spezifikation dasselbe Objekt
console.log(document.plugins === document.embeds);
Live-Verhalten der Collection
const plugins = document.plugins;
console.log(plugins.length); // 0
const embed = document.createElement('embed');
embed.src = 'bericht.pdf';
embed.type = 'application/pdf';
document.body.append(embed);
console.log(plugins.length); // passt sich automatisch an
// Für Array-Methoden in ein Array umwandeln
const pdfs = [...plugins].filter((e) => e.type === 'application/pdf');
console.log(pdfs.length);
// Wichtig · Fallstricke
- Verwechslungsgefahr:
document.pluginsliefert<embed>-Elemente.navigator.pluginsliefert dagegen die installierten Browser-Plugins, heute meist nur noch die fest eingebauten PDF-Viewer-Einträge. - Nur
<embed>:<object>- und<iframe>-Elemente sind nicht enthalten. Dafür brauchen Sie z. B.querySelectorAll('object'). - Live-Collection: Wenn Sie beim Durchlaufen Elemente entfernen, verschieben sich die Indizes. Wandeln Sie die Collection vorher mit
Array.from()oder Spread in ein Array um. - Kein Array:
HTMLCollectionhat keinmap/filter.for...offunktioniert aber. - Kompatibilität: In allen modernen Browsern verfügbar. Die Eigenschaft gilt als veraltet, weil klassische NPAPI-Plugins wie Flash oder Java nicht mehr unterstützt werden. In neuem Code ist
document.embedsvorzuziehen.