![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| SHAmanovi4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
Люди, помогите. Не знаю как решить задачку:
По определенному событию начинаю грузить картинку. Мне нужно узнать ширину и высоту этой картинки. Вот код:
Проблема в том, что ширина и высота картинки так и не определяются. Что-то я не то делаю. Как убедиться в том, что картинка загружена полностью и только тогда брать ширину и высоту? Сейчас у меня и то и то становится undefined Помогите пожалуйста |
|||
|
||||
| griker |
|
|||
![]() MDMA ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 14.7.2006 Где: Tallinn Репутация: 1 Всего: 8 |
-------------------- I don't respect police |
|||
|
||||
| SHAmanovi4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
Неее... У меня картинки пока что нет. Т.е. хтмл-кода вообще нет. Он генерируется после загрузки картинки. Т.е. у меня, грубо говоря, пустая страница. А когда я запускаю скрипт, начинает догружаться картинка. Мне, скажем, нужно ее поместить в div. Для этого мне нужно задать диву размеры, равные размерам картинки. Собственно вот. Так как вы предложили - не подходит. Картинка выводится гораздо позже того, как мне нужны ширина и высота.
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
SHAmanovi4, так перенесите второй alert и все, что нуждается в переменных picw, pich внутрь той функции, которая onload объекта Image(). Скрипт же не становится на паузу от самого факта назначения обрабочика...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| 12345c |
|
||||||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Добавлено @ 16:17 Лучше ww=setInterval(...), а когда определится a.width&&a.height, стереть: cleaRInterval(ww); Добавлено @ 16:19 Нет, всё понятно, вот так стабильно работает:
Это сообщение отредактировал(а) 12345c - 24.11.2006, 16:21 |
||||||
|
|||||||
| SHAmanovi4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
О! Спасибо большое! Заработало! Оказывается, нужно было присваивать src уже после того, как наступил onload! Крутотень... век живи - век учись. Спасибо большое.
...... Блин! Теперь вот какое дело: он при первом клике сообщает об ошибке. Только на второй делает все как полагается... Вот полный листинг скрипта... не хотел выкладывать, но, похоже, выбора нет.
Это сообщение отредактировал(а) SHAmanovi4 - 24.11.2006, 17:05 |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Поправочка: не после того, как наступил, а после того, как для него был назначен обработчик. Именно чтобы иметь гарантию того, что onload не успеет "проскочить" необработанным... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| SHAmanovi4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
А если я запихаю остатки своей функции (смотри код в моем посте выше), то оно будет работать чтоли... ща попробую...
|
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
1) function bigpic(newsrc, title) {
var div = d.getElementById('bigpic'); - даст ошибку в FF из-за 2 переменных с одинаковым имененем (он считает, что ид - это переменная); 2) возможно, на больших картинках pic.onload=function() {picw=pic.width; pich=pic.height;} не сработает (были такие проблемы, правда, при прорисовке картинки), и тогда надо вставить задержку. |
|||
|
||||
| SHAmanovi4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
Во блин! Тупизм... ладно, исправлю. Это не долго.... Господа, пожааааалуйста! Напишите работающий пример! |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Действительно, проверил эту программу на локальном хосте в IE - успевает, а в FF - нет. Придётся переделать с задержками. Минут через 5.
Это сообщение отредактировал(а) 12345c - 24.11.2006, 18:37 |
|||
|
||||
| SHAmanovi4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
Во! ОТЛИЧНО!
http://anime.insyss.ru/galery просто хочу нормально чтобы картинки открывались в галерее. Я написал галерею на Perl, хочу ее в свободное плавание запустить. Вот готовлю. Спасибо еще раз. |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
12345c, а в чем все же преимущество периодического вызова по таймауту однократному вызову по Onload?
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| SHAmanovi4 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
Видимо, в том, что onload проскакивал. Попробуйте сделать по onload и по таймауту. По onload мне предлагали делать все. И у меня не получалось. А по таймауту получилось. Можете посмотреть по моей ссылке результат.
сам понимаю что по таймауту не оч хорошо получается - функция висит в памяти. Но что пделать, если так надежнее? |
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
SHAmanovi4, не знаю, я поэкспериментировал с Вашим кодом с onload, только тупо перенес в него весь код за исключением присвоения src:
И никаких проблем в FF не увидел, ни на быстрой локальной загрузке, ни на медленной удаленной. Предлагаю дождаться ответа 12345c... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |