amolip: Wozu einen Image()-Konstruktor?

Beitrag lesen

Hallo,

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

Mit dem Konstruktor »Image()« ebenfalls.

Das img-Element ist das einzige HTML-Element für das es einen Konstruktor gibt. Alle anderen Elementen müssen mit der createElement()-DOM-Methode erzeugt werden.

Zwei Dinge frage ich mich jetzt bzw. euch :-)

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?

Ich würde gerne, um die Dinge einheitlich zu handhaben, auf den Konstruktor verzichten und stattdessen mit »createElement("img")« arbeiten. Stichprobenartig habe ich beide Varianten verglichen und kann in der Funktionsweise, insbesondere in bezug auf events, keinen Unterschied feststellen.

var bild1 = document.createElement("img");
        //alert(bild1); //HTMLImageElement

bild1.onload = foo_bild1; //wird gefeuert
        bild1.onerror = bar_bild1; //wird gefeuert

bild1.src = "Flaggen/Deutschland.gif";

var bild2 = new Image();
        //alert(bild2); //HTMLImageElement

bild2.onload = foo_bild2; //wird gefeuert
        bild2.onerror = bar_bild2; //wird gefeuert

bild2.src = "Flaggen/Frankreich.gif";

alert(bild1.complete + " - " + bild2.complete); //okie dokie

var test = document.getElementById("test");
        test.appendChild(bild1);
        test.appendChild(bild2);

Getestet habe ich mit FF 2.x und IE 7.x. Können eventuell andere oder ältere Browser damit Probleme haben?
Spricht irgend etwas gegen den Verzicht des Image()-Konstruktors?

Gruß Uwe