img onload nie działa dobrze w IE7

Mam tag img w mojej aplikacji internetowej, który używa modułu obsługi onload do zmiany rozmiaru obrazu:

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

Działa to poprawnie w Firefoksie 3, ale nie działa w IE7, ponieważ obiekt obrazu jest przekazywany doSizeImage() funkcja ma szerokość i wysokość 0 z jakiegoś powodu - może IE wywołuje funkcję przed zakończeniem ładowania ?. Badając to, odkryłem, że inni ludzie mają ten sam problem z IE. Odkryłem również, że nie jest to poprawny kod HTML 4. To jest nasz dokument, więc nie wiem, czy jest ważny, czy nie:

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

Czy istnieje rozsądne rozwiązanie umożliwiające zmianę rozmiaru obrazu podczas ładowania, najlepiej zgodnego ze standardami? Obraz jest wykorzystywany przez użytkownika do przesłania zdjęcia, które może mieć niemal dowolny rozmiar, i chcemy wyświetlić go w maksymalnym rozmiarze 150x150. Jeśli twoim rozwiązaniem jest zmiana rozmiaru obrazu po stronie serwera podczas przesyłania, wiem, że jest to poprawne rozwiązanie, ale nie mogę go zaimplementować :( Musi być zrobione po stronie klienta i musi być wykonane na wyświetlaczu.

Dzięki.

Edytować: Ze względu na strukturę naszej aplikacji, uruchamianie tego skryptu w onloadu jest niepraktyczne (graniczy z niemożliwym). Mogę rozsądnie edytować znacznik obrazu i znajdujący się w pobliżu kod (na przykład mogę dodać a<script> tuż pod nim). Ponadto mamy już biblioteki Prototype i EXT JS ... kierownictwo woli nie dodawać kolejnych (niektóre odpowiedzi sugerują jQuery). Jeśli można to rozwiązać za pomocą tych ram, byłoby świetnie.

Edytuj 2: Niestety, musimy wspierać Firefox 3, IE 6 i IE 7. Pożądane jest również wsparcie dla wszystkich przeglądarek opartych na Webkit, ale ponieważ nasza strona nie obsługuje ich obecnie, możemy tolerować rozwiązania, które działają tylko w Big 3 .

questionAnswers(8)

yourAnswerToTheQuestion