que tiene una etiqueta img en mi aplicación web que utiliza el controlador onLoad para redimensionar la imagen:img proceso de carga no funciona bien en IE7
<img onLoad="SizeImage(this);" src="foo" >
Esto funciona bien en Firefox 3, pero no en IE7 porque el El objeto de imagen que se pasa a la función SizeImage()
tiene un ancho y una altura de 0 por alguna razón, tal vez IE llama a la función antes de que termine de cargarse. Al investigar esto, descubrí que otras personas han tenido este mismo problema con IE. También he descubierto que esto no es válida HTML 4. Este es nuestro tipo de documento, por lo 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, ya que es cargada , preferiblemente uno que cumpla con los estándares? La imagen se está utilizando para que el usuario cargue una foto de sí mismo, que puede ser de cualquier tamaño, y queremos mostrarla a un máximo de 150x150. Si su solución es redimensionar la imagen del servidor al cargar, sé que es la solución correcta, pero tengo prohibido implementarla :(Debe hacerse en el lado del cliente, y debe hacerse en la pantalla.
. gracias
Editar: Debido a la estructura de nuestra aplicación, no es práctico (rozando la imposible) para ejecutar este script en el proceso de carga del documento que puedo editar única forma razonable la etiqueta de la imagen y el código cerca de él (por. Por ejemplo, podría agregar un <script>
justo debajo de él). Además, ya tenemos las 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 usando esos marcos, eso sería genial.
Edit 2: Desafortunadamente, debemos admitir Firefox 3, IE 6 e IE 7. Es deseable admitir todos los navegadores basados en Webkit, pero como nuestro sitio no los admite actualmente, podemos tolerar soluciones que solo funcionan en Big 3.
Pregunta: se SizeImage() simplemente cambiando el tamaño del la imagen a 150x150? Tengo diferentes soluciones, ambas mejores que las siguientes, pero depende de lo que necesite SizeImage() para hacer. –
@Eric: no, debe mantener la relación de aspecto de la imagen. Además, si la imagen original es más pequeña que 150x150, no se debe hacer ningún cambio de tamaño (no quiero estirar nunca la imagen). – rmeador