molily: Wozu einen Image()-Konstruktor?

Beitrag lesen

Hallo,

mit »document.createElement("img")« wird ein HTMLImageElement-Objekt gemäß HTML-DOM erzeugt.

Mit dem Konstruktor »Image()« ebenfalls.

Image und HTMLImageElement sind grundsätzlich eigentlich zwei paar Schuhe. Im Firefox scheinen sie identisch, aber wenn ich mich recht erinnere, sind sie das nicht in jeder Hinsicht, auch wenn new Image und document.createElement("img") dasselbe zu ergeben scheinen. In anderen Browsern sind Image und HTMLImageElement m.W. nicht dermaßen aneinandergekoppelt und austauchbar (auch hier: wenn ich mich recht erinnere, ich hatte damit letztens noch herumexperimentiert). Kein Wunder, das ist nirgends standardisiert.

Das img-Element ist das einzige HTML-Element für das es einen Konstruktor gibt.

Nein, es gibt z.B. auch noch Option.

Warum gibt es den Image()-Konstruktor überhaupt? Kann das einfach historische Gründe haben, in dem Sinne, dass er eingeführt wurde als das DOM noch keine Bedeutung hatte?

new Image ist bloß fürs Vorladen gedacht.
Das Erzeugen von img-Elementen hat damit erstmal weniger zu tun, ich weiß z.B. nicht, ob beim Setzen des src-Attributs die Ressource schon geladen wird. Sinnvoll wäre es nicht, schließlich ist das Element noch nirgends eingehängt.

Stichprobenartig habe ich beide Varianten verglichen und kann in der Funktionsweise, insbesondere in bezug auf events, keinen Unterschied feststellen.

Wenn createElement für deine Zwecke funktioniert, dann nimm es.

Mathias