| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Свойство image.width не работает в Opera \ FF |
| Автор: zodiac 15.10.2010, 14:16 | ||
| Здравствуйте! Я использую небольшой скрипт, чтобы запрещать к загрузке слишком большие изображения.
Этот код корректно работает в Эксплорере, но никак не хочет работать в Опере - свойства width и height всегда имеют значение 0. Почему Опера не может видеть ширину и высоту рисунка? Помогите, пожалуйста, разобраться!) |
| Автор: bars80080 15.10.2010, 15:00 |
| что такое fn? откуда берётся? |
| Автор: zodiac 15.10.2010, 23:53 | ||||
Вот из этого:
|
| Автор: bars80080 15.10.2010, 23:59 |
| ну, вообще-то поле типа файл одно из самых не берущихся и трудно анализируемых. сделано это по причинам безопасности, и в целом это не побороть. во всяком случае с позиции html+javascript вашу задачу не реализовать. /не думайте, что первый под это копаете/ единственный вариант по пробовать подкопаться через флэш. но тут уже ничего посоветовать не могу |
| Автор: zodiac 16.10.2010, 00:09 |
| Да, но дело в том, что изображение на самом деле создается, путь к файлу корректно извлекается и присваивается новому объекту Image, он загружается в память... наверное, Опера в силу своих особенностей получает размеры только когда картинка выводится на страницу и становится видна пользователю. Да, флеш могуч... наверное, так и придется сделать) Спасибо за совет! |
| Автор: zodiac 16.10.2010, 00:35 | ||||
| Насчет хрома не знаю, в ИЕ все работает как запланировано - через некоторое время после выбора файла Эксплорер получает размеры (обычно сразу, но так как пробовал с очень большими картинками - по 12-15 мб, требовалось немного времени на загрузку), что и получаем при нажатии на кнопку... Полностью код выглядит так:
Т.е. все делается при нажатии на кнопку. Может ли причина проблемы (пусть частично) крыться и в этом? |
| Автор: Elfet 16.10.2010, 12:07 | ||
zodiac, картинка не успевает загрузится. Попробуй вот так:
|
| Автор: zodiac 16.10.2010, 21:36 |
| Попробовал, в Эксплорере стало получше, спасибо) а в Опере событие onLoad вообще не происходит... Стало быть, вопрос приобретает другой характер: как обойти эту исключительно "оперную" особенность и заставить ее загрузить изображение, но так, чтобы этого не заметил пользователь? Есть идея загрузить в div, но он может страницу растягивать... И чтобы картинка полностью не грузилась, надо как-то прервать загрузку картинки сразу после того, как div, в который она грузится, изменит размеры... подскажите, как это можно бы сделать? =) |