img onload no funciona bien en IE7

Tengo una etiqueta img en mi aplicación web que usa el controlador onload para cambiar el tamaño de la imagen:

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

Esto funciona bien en Firefox 3, pero falla en IE7 porque el objeto de imagen que se pasa a laSizeImage() la función tiene un ancho y alto de 0 por algún motivo, ¿es posible que IE llame a la función antes de que finalice la carga? Al investigar esto, he descubierto que otras personas han tenido este mismo problema con IE. También he descubierto que este no es un HTML válido 4. Este es nuestro doctype, así que no sé si es válido o no:

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

¿Existe una solución razonable para cambiar el tamaño de una imagen a medida que se carga, preferiblemente una que cumpla con los estándares? La imagen se está utilizando para que el usuario cargue una foto de sí mismos, que puede ser de casi cualquier tamaño, y queremos mostrarla a un máximo de 150x150. Si su solución es cambiar el tamaño de la imagen del lado del servidor en la carga, sé que es la solución correcta, pero tengo prohibido implementarla :( Debe hacerse desde el lado del cliente, y debe hacerse en la pantalla.

Gracias.

Editar: Debido a la estructura de nuestra aplicación, no es práctico (casi imposible de ejecutar) ejecutar este script en la carga del documento. Solo puedo editar razonablemente la etiqueta de la imagen y el código que está cerca (por ejemplo, podría agregar un<script> justo debajo de ella). Además, ya tenemos bibliotecas Prototype y EXT JS ... la administración preferiría no tener que agregar otra (algunas respuestas han sugerido jQuery). Si esto se puede resolver utilizando esos marcos, sería genial.

Editar 2: Desafortunadamente, debemos admitir Firefox 3, IE 6 e IE 7. También es conveniente que sea compatible con todos los navegadores basados ​​en Webkit, pero como nuestro sitio no los admite actualmente, podemos tolerar soluciones que solo funcionan en Big 3 .

Respuestas a la pregunta(8)

Su respuesta a la pregunta