Start · Sprachen · JavaScript · Referenz · Document.plugins

Document.plugins

Eigenschaft

Gibt eine live <code>HTMLCollection</code> aller <code>&lt;embed&gt;</code>-Elemente im aktuellen Dokument zurück – ein Alias für <code>document.embeds</code>.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

get Document.plugins

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

Typ
HTMLCollection<HTMLEmbedElement>
Beschreibung
Eine live 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);
}
Anzahl: 2 application/pdf https://example.com/handbuch.pdf image/svg+xml https://example.com/grafik.svg

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);
https://example.com/handbuch.pdf true

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);
0 1 1

// Wichtig · Fallstricke

  • Verwechslungsgefahr: document.plugins liefert <embed>-Elemente. navigator.plugins liefert 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: HTMLCollection hat kein map/filter. for...of funktioniert 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.embeds vorzuziehen.