У меня есть img-тег в моем webapp, который использует обработчик onload для изменения размера изображения:
<img onLoad="SizeImage(this);" src="foo" >
Это отлично работает в Firefox 3, но не работает в IE7, потому что объект изображения, передаваемый функции SizeImage()
, по какой-либо причине имеет ширину и высоту 0 - возможно, IE вызывает функцию до того, как она закончит загрузку?. Изучая это, я обнаружил, что у других людей была такая же проблема с IE. Я также обнаружил, что это неверно HTML 4. Это наш doctype, поэтому я не знаю, действительно ли это или нет:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Существует ли разумное решение для изменения размера изображения при его загрузке, предпочтительно в соответствии со стандартами? Изображение используется для того, чтобы пользователь мог загрузить фотографию, которая может быть практически любого размера, и мы хотим отображать ее максимум 150x150. Если ваше решение должно изменить размер серверной части изображения при загрузке, я знаю, что это правильное решение, но мне запрещено его реализовывать: (Это должно быть сделано на стороне клиента, и это должно быть сделано на дисплее.
Спасибо.
Изменить. Из-за структуры нашего приложения нецелесообразно (на грани невозможности) запустить этот script в документе onload. Я могу только разумно редактировать тег изображения и код рядом с ним (например, я мог бы добавить <script>
прямо под ним). Кроме того, у нас уже есть библиотеки прототипов и EXT JS... управление предпочло бы не добавлять другое (некоторые ответы предложили jQuery). Если это можно решить с помощью этих фреймворков, это будет здорово.
Изменить 2. К сожалению, мы должны поддерживать Firefox 3, IE 6 и IE 7. Желательно также поддерживать все браузеры на основе Webkit, но поскольку наш сайт в настоящее время не поддерживает их, мы можем терпеть решения, которые работают только в Big 3.