img onload не очень хорошо работает в IE7

В моем веб-приложении есть тег img, который использует обработчик загрузки для изменения размера изображения:

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

Это отлично работает в Firefox 3, но не работает в IE7, потому что объект изображения передается вSizeImage() функция имеет ширину и высоту 0 по какой-то причине - может быть, IE вызывает функцию до того, как она закончит загрузку? Исследуя это, я обнаружил, что у других людей была такая же проблема с IE. Я также обнаружил, что это недействительный HTML 4. Это наш тип документа, поэтому я не знаю, действителен ли он или нет:

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

Есть ли разумное решение для изменения размера изображения, когда оно загружено, предпочтительно такое, которое соответствует стандартам? Изображение используется для того, чтобы пользователь мог загрузить свою фотографию, которая может быть практически любого размера, и мы хотим, чтобы она отображалась с максимальным размером 150x150. Если ваше решение заключается в изменении размера изображения на стороне сервера при загрузке, я знаю, что это правильное решение, но мне запрещено его реализовывать :( Это должно быть сделано на стороне клиента, и это должно быть сделано на дисплее.

Благодарю.

редактировать: Из-за структуры нашего приложения нецелесообразно (граничит с невозможным) запускать этот скрипт при загрузке документа. Я могу только разумно редактировать тег изображения и код рядом с ним (например, я мог бы добавить<script> прямо под ним). Кроме того, у нас уже есть библиотеки Prototype и EXT JS ... руководство предпочло бы не добавлять другую (в некоторых ответах предлагается jQuery). Если это можно решить с помощью этих структур, это было бы здорово.

Редактировать 2К сожалению, мы должны поддерживать Firefox 3, IE 6 и IE 7. Желательно также поддерживать все браузеры на основе Webkit, но, поскольку наш сайт в настоящее время не поддерживает их, мы можем мириться с решениями, которые работают только в Большой 3 ,

Ответы на вопрос(8)

Ваш ответ на вопрос