Проблема с выводом изображений из массива 
		
		
		
		Есть некоторое кол-во изображений, приблизительно 400 на 600 px, но размер точный их заранее не известен. Надо в одном div разместить маленькие превьюшки, при клике на которые , в другом div будет выводится изображение  картинки на которой кликнули в натуральную величину. 
	
function getImages()
	{		
		var I = [];		
		for ( var i = 0; i < 10; i++ )
		{
			var myImage = new Image();
			myImage.src = "../img/pict" + (i+1) + ".jpg";
			myImage.ind = i+1;
			I.push(myImage);
		}
		return I;
	}
	function onPhotoClick()
	{
		var photo = document.getElementById("photo");
		photo.src = "../img/pict" + this.ind + ".jpg";  
	}
	window.onload = function()
	{
		var phContainer = document.getElementById('photoContainer');
		var Images  = getImages();
		for (var i =0; i < 10; i++)
		{ 
			var newImg = document.createElement('newImg')
			newImg = Images[i];
			newImg.width = Images[i].width / 5;
			newImg.height = Images[i].height / 5;
			phContainer.appendChild(newImg);
			newImg.onclick = onPhotoClick;			
		}
	}
<body> <h1 align = "center"> Фотоальбом </h1> <div align = "center" id = "photoContainer"> </div><br/> <div align = "center"> <img src = "../img/pict1.jpg" id = "photo"> </div> </body> В Firefox и Chrome при первом запуске выводится маленькая картинка фотографии с номером один ну и соответственно в реальном размере в другом div. И на этом все заканчивается. Если страницу перезагрузить , то все начинает работать. В IE наоборот , с начала работает, но криво, превьюшки не все создает. А если перезагрузить страницу , то выводится маленькая картинка первой фотки и ее большая копия и все дальше никаких реакций. Помогите разобраться. Javascript еще только осваиваю .  | 
	
		
 bakmaks, 
	странная конструкция ... Цитата: 
	
 может так попробовать 
function getImages()
	{
		var I = [];
		for ( var i = 0; i < 10; i++ )
		{
			var myImage = new Image();
			myImage.src = "../img/pict" + (i+1) + ".jpg";
		   	I.push(myImage);
		}
		return I;
	}
	function onPhotoClick()
	{
		var photo = document.getElementById("photo");
		photo.src = this.src;
	}
	window.onload = function()
	{
		var phContainer = document.getElementById('photoContainer');
		var Images  = getImages();
		for (var i =0; i < 10; i++)
		{
			var newImg = new image()
            newImg.src = Images[i].src;
			newImg.width = Images[i].width / 5;
			newImg.height = Images[i].height / 5;
			phContainer.appendChild(newImg);
			newImg.onclick = onPhotoClick;
		}
	}
 | 
	
		
 Моя ошибка.  Менял имена переменных, что бы удобнее было код читать, и случайно заменил и название элемента.  Должно было быть так  
	
var newImg = document.createElement('img')
 | 
	
		
 Но результат от этого не изменился. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Проблема обнаружилась на стадии создания массива изображений I[]. Вставил console.log  
	
function getImages()
	{		
		var I = [];		
		for ( var i = 0; i < 10; i++ )
		{
			var myImage = new Image();
			myImage.src = "../img/pict" + (i+1) + ".jpg";
			console.log('myImage['+(i+1)+'].width =' + myImage.width);
			myImage.ind = i+1;
			I.push(myImage);
		}
		return I;
	}
вот что пишет myImage[1].width =426 myImage[2].width =0 myImage[3].width =0 myImage[4].width =0 и т. д. вплоть до десятого элемента. После перезагрузки страницы в браузере в ручную, выдает все что положено. myImage[1].width =426 myImage[2].width =425 myImage[3].width =425 myImage[4].width =432 myImage[5].width =513 и т. д. Все начинает работать. Это в Лисе и в Хроме и после последующих перезагрузок тоже все работает. В IE всё происходит с точностью до наоборот. При первой загрузке выдается массив с правильными значениями (и то не всегда все значения не нулевые) и превьюшки с ненулевыми значениями видны и при клике по ним появляется большая картинка, а при перезагрузке первое значение нормальное , остальные по нулям. Ну и соответственно одна превьюшка. Остальных не видно. После последующих перезагрузок ничего не меняется.  | 
	
		
 bakmaks, 
	пока картинка незагрузилась откуда взять ширину ?  | 
	
		
 Первая картинка как-то загружается и у нее появляется  и ширина  и высота. Почему у последующих нет? И почему в IE  происходит все наоборот. Если в функции windows.onload() убрать 
	newImg.width = Images[i].width / 5; newImg.height = Images[i].height / 5; то все начинает работать во всех браузерах. Только вместо превью, картинки соответственно появляются в полный размер. 
window.onload = function()
	{
		var phContainer = document.getElementById('photoContainer');
		var Images  = getImages();
		for (var i =0; i < 10; i++)
		{ 
			var newImg = document.createElement('img')
			newImg = Images[i];
			//newImg.width = Images[i].width / 5;  
			//newImg.height = Images[i].height / 5;
			phContainer.appendChild(newImg);
			newImg.onclick = onPhotoClick;			
		}
	}
А вот это так и не меняется. myImage[1].width =426 myImage[2].width =0 myImage[3].width =0 myImage[4].width =0 и т. д. вплоть до десятого элемента. После перезагрузки страницы в браузере в ручную, выдает все что положено. myImage[1].width =426 myImage[2].width =425 myImage[3].width =425 myImage[4].width =432 myImage[5].width =513  | 
	
		
 bakmaks, 
	выкиньте строки 7, 8 - сделайте как я вам показал -- а строки 9, 10 поставьте в функцию в onload превью. попробуйте написать такой код.  | 
	
		
 bakmaks, 
	
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
<script>
function getImages()
	{
		var I = [];
		for ( var i = 0; i < 5; i++ )
		{
			var myImage = new Image();
			myImage.src = "http://ru.lookatcode.com/show/9648057958996398/img" + (i+1) + "-lg.jpg";
		   	I.push(myImage);
		}
		return I;
	}
	function onPhotoClick()
	{
		var photo = document.getElementById("photo");
		photo.src = this.src;
	}
	window.onload = function()
	{
		var phContainer = document.getElementById('photoContainer');
		var Images  = getImages();
		for (var i =0; i < 5; i++)
		{
			var newImg = new Image()
            newImg.onload = function(){
            this.width = this.width / 5;
			this.height = 50;
            }
             newImg.src = Images[i].src;
             newImg.onclick = onPhotoClick;
             phContainer.appendChild(newImg);
		}
	}
</script>
</head>
<body>
<div id="photoContainer"></div>
<img id="photo" src="http://ru.lookatcode.com/show/9648057958996398/img1-lg.jpg"></img>
</body>
</html>
 | 
| Часовой пояс GMT +3, время: 13:52. |