![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Как всегда, когда надо не могу найти.
Ели после загрузки страницы или после замены какие-то картинки не загрузились или не существуют, то в каком свойстве это отрожается? Заранее спасибо. Добавлено @ 18:09 Цель - чтоб alt не портил дизайн, задам размеры или чтонить сделаю Это сообщение отредактировал(а) Иль - 28.3.2005, 18:11 -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Или если такого нет, то буду проверять имеющиеся ширину и высоту и выставлять нужные
-------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Есть конечно, свойство complete. Жаль что процентное соотношение узнать нельзя.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
а може ещё и свойство onError?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Как проверять при загрузке понятно.
А если картинка загрузилась и я меняю через JS значение SRC на несуществующее, у меня complete остается true. Можно это отследить? Это сообщение отредактировал(а) Иль - 4.4.2005, 20:11 -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Хорошенько подумай что ты сказал, для верности проведи пару тестов Сменив src у любой картинки, будь то HTML элемент или Image ты сбрасываешь complete, затем как картинка полностью загрузится из кеша или из сети, complete меняется на true. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Иль |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Sardar, с моим уровнем подготовки, я просто не имею права задавать вопросы, не проведя с десяток тестов и в разных браузерах
Сейчас перепроверю и дам код. Но может быть и такое, что я чего-то не того - не серчайте Добавлено @ 17:27
Картинки pic111.gif не существует, в ИЕ появляется красный крест, а complete=true -------------------- Ты виндусятник?... А я да. |
||||
|
|||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
А может complete надо как-то по хитрому проверять, в какой-то момент?
Я видел в поиске через функцию... -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Нет, это не годится. Почему бы не использовать то событие, которое специально предназначенно для этого: onabort |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Иль извиняюсь, действительно криво...
Юзаем событие onload у картинки. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Что-то мне подсказывает, что onabort и onload надо цеплять на body или img. Верно?
Можно это реализовать в функции, чтоб после смены SRC, если картинки нет что-то делать? Про setInterval понятно, а остальное что-то не представляю. Может уже был топик? Будут силы, время и желания - черканите. 100 наберу - не забуду Это сообщение отредактировал(а) Иль - 4.4.2005, 20:12 -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
onabort - поддерживается только в теге <img>
onload только начиная с 4ой версии в <img> Но для <img> они полярны, первое обозначает прерывание загрузки изображения, второе - загрузку полную его. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Наваял немного: http://forum.vingrad.ru/index.php?showtopic=47159
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Иль |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Должен добавить об одной досадной особенности из собственного опыта.
В Лисах и Мазиллах, в отличие от ИЕ, присваивание complete=true некорректно и немного опережает реальное положение вещей, что требует полюбому ставить между
Т.е. хотя complete уже true, свойства изображения в ноде обновятся с задержкой. Печально... Добавлю - касается только впервые выводимых на дисплей картинок (даже уже подкаченных скриптом!!!). Это сообщение отредактировал(а) Иль - 4.4.2005, 20:13 -------------------- Ты виндусятник?... А я да. |
||||
|
|||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Елки-моталки. Замотался!
ИЕ тоже туда же, если просматривать не локально. Влепил 500мс - заработало. Sardar, извини, в твоем скрипте еще не разбирался - пойду. А вообще, еще идея, тестить свойство старой картинки с новым - 100% безотказно. -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Я все еще тут (пора, пора на http://forum.vingrad.ru/index.php?showtopic=47159
Упрел! Создаю объект-изображение, подгружаю в него новую картинку, проверяю на complete и только тогда в целевом изображении меняю SRC. Но это не все!!! Проверяю целевое изображение на complete и считываю нужные мне свойства в надежде получить новые значения. Нормалек, работает. Ок, сливаем бадягу в инет. М-да. Чешу злобно голову... Получилось какак-то смутно. Чем больше тайминги у setInterval, тем больше шансов застать новые значения свойств и чем загруженней браузер (многооконный) - тем меньше. Отсюда и переодические глюки перемены свойств при смене туда и обратно. Видать надо проверять изменения конкретного свойства или свойств. Теперь, побаловав дух любознательности, иду учить пример старшего товарища Это сообщение отредактировал(а) Иль - 4.4.2005, 20:14 -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
А зачем тебе мониторить свойства картинок? Покажи код.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Слава тебе господи, отпустило
Sardar, а ведь все благодаря тебе, спасибо!!! Я раньше не знал и нигде онлайн не мог найти (может просто не замечал), как задавать событие на к-либо элемент в функции, а не инлайн. Даже специально везде рылся (подумывал, что такого нет). А посмотрев код в предлагаемом тобой топике сразу сообразил. Так что прошу для чайников (и их подруг
Даже обидно, как все просто. И что вы думаете! Только я (после смены SRC) посадил мою картинку на onload, которому прописал метод считывания ее размеров, так сразу все стало работать без перебоев с первого раза! И еще, та чек-функция смены SRC в твоем топике (47159) просто супер. Руки бы не дошли, а ты так все ладно сделал. Спасибо огромное. Забыл про код - да там тривиальщина, чтоб дизаин не портился. Картинка изменилась - подгоняем по ее размерам соседний элемент (эстетика, Ё-моё). Уменьшилась - обратно. Добавлено @ 15:58 Не, если интересно, я вырву код из контекста, очищу от воды и выложу... Это сообщение отредактировал(а) Иль - 4.4.2005, 20:10 -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Не нужно, это базовый JS, учится в любом учебнике, на крайняк опытом Любой обьект можно создать в некотором контексте, в котором он и будет жить, например внутри функции. Следовательно функции можно вкладывать друг в друга, при этом важно что все переменные обьявленные в функции выше продолжают быть доступными в функции ниже, даже после выхода. Запутанно?
Жмём на кнопку, видим что каждый раз запускается новый тред имеющий свой собственный контекст функции test с переменной а. А вообще в JS много чего интересного, те же геттеры/сеттеры в Мозилле -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
А это я для кого писал: http://forum.vingrad.ru/index.php?showtopic=32350 =) |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Увы и ах, читал много раз, аголова не приняла. Только на живом примере.
Aliance, Sardar, не обижайтесь, теперь я вижу, что там это есть, Но! Так, как там это написано... Не учебник же. Итак-то есть непонятки. Теперь не вопрос, но неделю назад мозги запудрились, даже не разглядел. Нужен базис для восприятия. -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Опять замечено продолжение глюка в обоих бродилках, если не использовать this.
Если описывать метод, привязанный к onload, не как предложил Sardar в указанном топике (с использованием this), то опять, при первой смене картинок, указанный глюк появляется!!! Видимо без this теряется связь с еще не кэшированной, только закаченной картинкой. Добавлено @ 20:32 разбираться, правда, и делать выводы некогда - решение есть. -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Подробнее об этом? Что за указанный глюк? Ссылка this указывает на того кому принадлежит метод, в случае с "традиционнымйи обработчиками событий" ссылка указывает на обьект, к событию которого мы задавали функцию-обработчика. Убедись что в твоём случае this это именно то что ты думаешь(опроси{правильный ответ}: nodeType{1}, tagName{IMG}). Ссылка this указывет на обьект-картинку в нутри обработчика события, а каково его состояние(загруженно/нет) абсолютно не важно, ошибка в другом -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Меняю SRC картинки, считываю ее высоту. Глюк заключается в том, что при первой смене SRC ее свойства меняются с большой задержкой и при считывании я получаю старые значения. -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Кинь кусок кода где ты меняешь Src и где параметры (ширина, высота)
|
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Вот проблемный код
Условие: Картинка pic2.gif выше pic1.gif Описание: Запускаем впервые в ИЕ или Лисе, кликаем по картинке и слой не меняет свою высоту. Кликаем второй раз и слой вырастает в высоту. Повторнуй опыт с тем же результатом: В Лисах под ХР достаточно нажать обновить, а в ИЕ требуется перезапуск браузера. Извините, беспроблемный код положу после - на работе аврал. -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
У IMG не заданы параметры (null), так их нельзя изменять.
А как из кода выше узнать какой первый раз какой второй? Это я так понимаю в другом коде делается, да? А то иначе не правельно. В общем задай картинке ее реальные height и width и запусти заного. |
|||
|
||||
| Иль |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 544 Регистрация: 3.3.2005 Где: Москва Репутация: 2 Всего: 14 |
Да, так и есть, это упрощенный донельзя код чтоб показать проблему.
Я немного не понял. Высоту и ширину задавать в HTML не получается - поидеи картинок много и они разные. И еще, тогда ж нельзя использовать картинки разного размера - браузер отмаштабирует новую картинку под размеры, указанные в HTML. Если это делать в JS, пробежав по коллекции после загрузки, но у изображений height и width уже есть автоматически. Это сообщение отредактировал(а) Иль - 7.4.2005, 14:30 -------------------- Ты виндусятник?... А я да. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Всё верно, картинка не успела подгрузится, а ты уже опрашиваешь её свойства. В JS всё работает паралельно(асинхронно), таймеры, загрузка картинок и т.п.
Когда кликаешь по второму разу картинка уже в памяти, размеры известны, код срабатывает. Отсюда вывод: ловим событие onload, опрашиваем её своства. Ты уже так и сделал -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |