Start · Sprachen · JavaScript · Referenz · HTMLObjectElement.height

HTMLObjectElement.height

Eigenschaft

Liest oder setzt das HTML-Attribut <code>height</code> eines <code>&lt;object&gt;</code>-Elements als String, also die Anzeigehöhe der eingebetteten Ressource in CSS-Pixeln.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

HTMLObjectElement.height

Beschreibung

Die Eigenschaft height des Interfaces HTMLObjectElement spiegelt das HTML-Attribut height eines <object>-Elements wider. Damit wird die Höhe festgelegt, in der die eingebettete Ressource angezeigt wird, zum Beispiel ein PDF, ein SVG oder ein anderes HTML-Dokument. Der Wert gilt in CSS-Pixeln.

Anders als HTMLImageElement.height ist der Wert hier ein String und keine Zahl. Beim Lesen bekommst du genau den Text, der im Attribut steht, zum Beispiel "300". Fehlt das Attribut, ist der Wert ein leerer String "". Wenn du einen Wert zuweist, wird das Attribut sofort im DOM aktualisiert.

Die Eigenschaft sagt nur etwas über das Attribut aus, nicht über die tatsächlich dargestellte Größe. Wird die Höhe per CSS überschrieben, bleibt height unverändert. Die wirklich dargestellte Höhe liefern offsetHeight, clientHeight oder getBoundingClientRect().

Parameter

Name Typ Default Beschreibung
$value string "" Nur beim Setzen: die neue Höhe als Zahl ohne Einheit in CSS-Pixeln, z. B. "400". Eine zugewiesene Zahl wird in einen String umgewandelt.

Rückgabewert

Typ
string
Beschreibung
Der aktuelle Wert des Attributs height als String, oder "", wenn das Attribut fehlt.

Beispiele

Höhe eines eingebetteten PDFs auslesen

// HTML: <object id="doc" data="handbuch.pdf" type="application/pdf" width="600" height="400"></object>
const doc = document.getElementById('doc');
console.log(doc.height);          // Attributwert als String
console.log(typeof doc.height);
console.log(Number(doc.height) + 100); // in eine Zahl umwandeln, um damit zu rechnen
400 string 500

Höhe dynamisch anpassen

const viewer = document.querySelector('object#doc');

// Viewer auf 80 % der Fensterhöhe setzen
const resizeViewer = () => {
  viewer.height = String(Math.round(window.innerHeight * 0.8));
};

resizeViewer();
window.addEventListener('resize', resizeViewer);
console.log(viewer.getAttribute('height'));
z. B. 720 (abhängig von der Fenstergröße)

Attributwert und dargestellte Höhe vergleichen

const obj = document.createElement('object');
obj.data = 'grafik.svg';
obj.type = 'image/svg+xml';
obj.height = '200';
obj.style.height = '50px'; // CSS hat Vorrang bei der Darstellung
document.body.append(obj);

console.log(obj.height);       // Attributwert
console.log(obj.offsetHeight); // tatsächlich dargestellte Höhe
200 50

// Wichtig · Fallstricke

  • Der Wert ist ein String: Ausdrücke wie obj.height + 10 hängen Text an (z. B. "30010"). Wandle den Wert vorher mit Number() oder parseInt() um.
  • Prozentangaben wie "50%" werden zwar gespeichert, sind aber nach HTML5 nicht gültig. Für relative Größen besser CSS verwenden.
  • CSS-Regeln für height haben Vorrang vor dem Attribut. Die Eigenschaft zeigt deshalb nicht unbedingt die tatsächlich dargestellte Größe.
  • Wird die Eigenschaft nie gesetzt, ist der Wert "" und nicht "0". Die Standardgröße des Elements (meist 150 px Höhe) wird hier nicht angezeigt.
  • Die Eigenschaft wird in allen gängigen Browsern seit Langem unterstützt.