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