Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2011, 09:23
Аспирант
Отправить личное сообщение для syegorius Посмотреть профиль Найти все сообщения от syegorius
 
Регистрация: 28.08.2010
Сообщений: 91

Проверка картинки на существование и на ее полную загрузку
Доброе время суток. В скрипте написал такое чудо:

var newImg = new Image();
newImg.src = src;
var $iw = newImg.width;
var $ih = newImg.height;

Но очень часто $iw и $ih не правильные... Я подозреваю, что это потому что картинка не успевает загрузится...
Как проверить загрузилась ли она, а если картинки не существует, то как заменить src на, например, standart.jpg?
В интернете нашел метод onload и onerror, но не совсем понял как ими пользоваться и куда мне тут их надо вставить...

Заранее спасибо за ответы...
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2011, 09:49
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

var newImg = new Image();
newImg.onload = function() {
     $iw = newImg.width;
     $ig = newImg.height;
}
newImg.src = src;
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2011, 10:09
Аспирант
Отправить личное сообщение для syegorius Посмотреть профиль Найти все сообщения от syegorius
 
Регистрация: 28.08.2010
Сообщений: 91

Такой вопрос напрашивается - если newImg.src = src; стоит после newImg.onload = function(); то как оно знает какую картинку проверять на onload?
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2011, 10:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от syegorius
Такой вопрос напрашивается - если newImg.src = src; стоит после newImg.onload = function();
- Доктор, если я делаю вот так (сворачивается в немыслимую позу)... То у меня сильно болит вот сдесь.
- Не делайте так.
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2011, 10:28
Аспирант
Отправить личное сообщение для syegorius Посмотреть профиль Найти все сообщения от syegorius
 
Регистрация: 28.08.2010
Сообщений: 91

))) хорошо... ну а если у меня там стоит цикл типа
for(i=0; i<10; i++){
var newImg = new Image();
newImg.onload = function() {
$iw = newImg.width;
$ig = newImg.height;
}
newImg.src = 'img'+i+'.jpg';
}

оно нормально будет работать?
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2011, 10:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от syegorius
а если у меня там стоит цикл типа
for(i=0; i<10; i++){
var newImg = new Image();
	newImg.onload = function() {
	     $iw = newImg.width;
	     $ig = newImg.height;
	}
	newImg.src = 'img'+i+'.jpg';
}
Что мешает переставить местами...

for(i=0; i<10; i++){
	var newImg = new Image();
	newImg.src = 'img'+i+'.jpg';
	newImg.onload = function() {
	     $iw = newImg.width;
	     $ig = newImg.height;
	}
}


В любом случае нужно просто попробовать...
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2011, 10:39
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вы присваиваете высоты 10 картинок одной переменной. Что тут должно нормально работать?
Ответить с цитированием
  #8 (permalink)  
Старый 08.06.2011, 10:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Kolyaj, может это он только для "примера" такое написал...
Ответить с цитированием
  #9 (permalink)  
Старый 08.06.2011, 10:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от ksa
Что мешает переставить местами...
Не надо переставлять местами, проблемы начнутся.
Ответить с цитированием
  #10 (permalink)  
Старый 08.06.2011, 10:41
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Ясно...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка HTML элемента на существование MCTrane Общие вопросы Javascript 10 26.02.2014 19:51
Как можно остановить загрузку картинки? EugeneVB Элементы интерфейса 3 30.05.2011 22:18
Сделать загрузку картинки azgard Работа 14 27.12.2010 11:21
Как убрать загрузку картинки из кэша? chuser Общие вопросы Javascript 2 31.03.2010 17:19
проверка элемента на существование Дмитрий С. Общие вопросы Javascript 2 13.11.2008 12:05