Показать сообщение отдельно
  #4 (permalink)  
Старый 31.12.2012, 17:33
Новичок на форуме
Отправить личное сообщение для Дмитрий 87 Посмотреть профиль Найти все сообщения от Дмитрий 87
 
Регистрация: 14.12.2012
Сообщений: 7

И попутный вопрос по теме)
Чем отличаются записи:
ShowImg.onload= function(){alert("The Image is not loaded! Sorry...")}

И:
ShowImg.onload= alert("The Image is not loaded! Sorry...")


Вот сам скрипт смены изображений:
var ImgArr= document.getElementById("preload").getElementsByTagName("img")
	var ShowImg= document.getElementById("mainimg")
	var CurImg= 0
	function nextimg(){
		if (CurImg<ImgArr.length-1){
			CurImg+= 1
			ShowImg.src= ImgArr[CurImg].src}
		else{
			CurImg= 0
			ShowImg.src= ImgArr[CurImg].src}
	}
	function prewimg(){
		if (CurImg !== 0){
			CurImg-= 1
			ShowImg.src= ImgArr[CurImg].src}
		else{
			CurImg= ImgArr.length-1
			ShowImg.src= ImgArr[CurImg].src}
	}
	function blockkeydown(event){
		if (event.keyCode== 37){nextimg()}
		if (event.keyCode== 39){prewimg()}
	}
	function load(){
		ShowImg.src= ImgArr[CurImg].src
	}
	ShowImg.onerror= function(){alert("The image is not loaded! Sorry...")}
	document.onload= load()


Если убрать function(){...} то сразу при загрузке страницы алерт! Если в таком виде, то всё вроде норм (грузится изображение, если его нет то алерт).
А вот если событие ОНЕРРОР поместить в функцию (например function prewimg()) то там такие чудеса творятся!
Допустим поставить событие ОНЛОАД куда-нибудь в функцию function nextimg(). По наблюдениям после ОНЛОАД код пойдёт выполняться дальше, функция завершится и событие онлоад попросту не случится!
На сайте даже есть пример:
http://learn.javascript.ru/play/tuto...oad/index.html

Взятый из статьи:
http://learn.javascript.ru/onload-onerror

Перейдите туда и уберите ДЕМО СЧЁТЧИК (
setTimeout(replaceImg, 1000); // задержка на 1 сек для демонстрации

)! Функция не выполнится!
Спрашивается, как по человечески реализовать функцию проверки изображений?

Последний раз редактировалось Дмитрий 87, 31.12.2012 в 17:46.
Ответить с цитированием