Img Onload funktioniert nicht gut in IE7

Ich habe ein img-Tag in meiner Webanwendung, das den Onload-Handler verwendet, um die Größe des Bildes zu ändern:

<img onLoad="SizeImage(this);" src="foo" >

Dies funktioniert in Firefox 3 einwandfrei, schlägt jedoch in IE7 fehl, da das Bildobjekt an das übergeben wirdSizeImage() Funktion hat aus irgendeinem Grund eine Breite und Höhe von 0 - vielleicht ruft der IE die Funktion auf, bevor der Ladevorgang abgeschlossen ist ?. Bei der Recherche habe ich festgestellt, dass andere Leute das gleiche Problem mit dem Internet Explorer hatten. Ich habe auch festgestellt, dass dies kein gültiges HTML 4 ist. Dies ist unser Doctype, daher weiß ich nicht, ob es gültig ist oder nicht:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Gibt es eine vernünftige Lösung für die Größenänderung eines geladenen Bildes, vorzugsweise eine normkonforme? Das Bild wird für den Benutzer verwendet, um ein Foto von sich selbst hochzuladen, das nahezu beliebig groß sein kann, und wir möchten es mit einer maximalen Größe von 150 x 150 anzeigen. Wenn Ihre Lösung darin besteht, die Größe des Bildservers beim Hochladen zu ändern, weiß ich, dass dies die richtige Lösung ist, aber es ist mir untersagt, sie zu implementieren :( Es muss clientseitig erfolgen und es muss auf dem Bildschirm erfolgen.

Vielen Dank.

Bearbeiten: Aufgrund der Struktur unserer App ist es unpraktisch (fast unmöglich), dieses Skript beim Laden des Dokuments auszuführen. Ich kann das Bild-Tag und den Code in der Nähe nur zumutbar bearbeiten (zum Beispiel könnte ich ein hinzufügen<script> direkt darunter). Außerdem haben wir bereits Prototype- und EXT-JS-Bibliotheken. Das Management würde es vorziehen, keine weiteren hinzuzufügen (einige Antworten haben jQuery vorgeschlagen). Wenn dies mit diesen Frameworks gelöst werden kann, wäre das großartig.

Bearbeiten 2: Leider müssen wir Firefox 3, IE 6 und IE 7 unterstützen. Es ist wünschenswert, auch alle Webkit-basierten Browser zu unterstützen, aber da unsere Site diese derzeit nicht unterstützt, können wir Lösungen tolerieren, die nur in Big 3 funktionieren .

Antworten auf die Frage(8)

Ihre Antwort auf die Frage