Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   помогите с insertBefore (https://javascript.ru/forum/events/9871-pomogite-s-insertbefore.html)

bushstas 09.06.2010 14:07

помогите с insertBefore
 
через форму загружаю в iframe php скрипт который принимает картинку
из формы и делает с ней нужные действия,
затем по окончанию php скрипта вставлен JS код который добавляет только что загруженную картинку в элемент div (allPics) где уже имеются картинки

var image=document.createElement('img');
imag.src='../pics/newname.jpg';
imag.id='newname';
imag.style.cursor='pointer';
imag.style.marginTop='20px';
imag.style.width='160px';
imag.style.height='160px';



var place=window.parent.document.getElementById("allPics");

if(place.children.length!=0){
var ID=place.children[0].id
var before=window.parent.document.getElementById(ID);
}

place.insertBefore(image,before)

работает отлично в опере и мозилле а в эксплорере ругается мол
недопустимый аргумент в последней строке

Skipp 09.06.2010 14:14

getAttribute('id');

bushstas 09.06.2010 14:18

это в строках 11 и 15 вставить вместо getElementById???

Skipp 09.06.2010 14:22

вместо place.children[0].id

place.children[0].getAttribute('id');

и не так imag.id='newname';

а так imag.setAttribute('id','newname');

И не забывай что id должен быть уникальным

и что-то я ещё упустил, вроде.

bushstas 09.06.2010 14:26

спасибо но не помогло :(


place.appendChild(image)
тоже ругается на недопустимый аргумент

Skipp 09.06.2010 14:39

Попробуй из window.parent убрать window.
Хотя вряд ли поможет:)

e1f 09.06.2010 15:28

var *!*image*/!*=document.createElement('img'); 
*!*imag*/!*.src='../pics/newname.jpg';


Очепятка? Залогируйте image.

Skipp 09.06.2010 15:29

тьфу блин, а я годаю(

bushstas 09.06.2010 16:58

ух понял, нашел

правильно было написать
image=window.parent.document.createElement('img')


:)

кому интересно вот мой дилетантский скрипт :)

--------------HTML------------
Форма для загрузки картинки
<form action="uploadImage.php"   name="uploadForm" method="post" target="hiddenframe" enctype="multipart/form-data">

   Картинка <input type="file" name="userfile"> 
   <input type="submit" value="Загрузить"  

</form>

iframe куда загружается php скрипт из файла uploadImage.php
<iframe id="hiddenframe" name="hiddenframe" style="display:none; width:0px; height:0px; border:0"></iframe>


здесь распологаются картинки, сюда добавляется новая после загрузки
<div id="allPics" style="width:200px;height:400px;overflow:auto;text-align:center;"></div>



--------------------PHP (uploadImage.php)---------------------

//функция для задания размеров картинки
function createbigthumbnail($origfile,$thumbfile) {
	global $settings;
	$origimage=imagecreatefromjpeg($origfile);
	$origwidth=imagesx($origimage);
	$origheight=imagesy($origimage);
	
	if ($origwidth<600){$newidth=$origwidth; $newheight=$origheight;
	$thumbimage=imagecreatetruecolor($origwidth,$origheight);}
	else {
	$newidth=600;
	$o=1;
	$o=$origwidth/600; $newheight=$origheight/$o;
	$thumbimage=imagecreatetruecolor(600,$newheight);}
	
	
	$background=imagecolorallocate($thumbimage,255,255,255);
	imagefill($thumbimage,0,0,$background);
	$result=imagecopyresampled( $thumbimage, $origimage,0,0,0,0,$newidth,$newheight,$origwidth,$origheight);
	imageJPEG($thumbimage,$thumbfile,100);}	


// функция генерации имени файла

function randomName()
{
	$min=4; // минимальное количество символов
	$max=15; // максимальное количество символов

	$name="";

	for($i=0;$i<rand($min,$max);$i++)
	// Загрузка и проверка символов
	{
		$num=rand(48,122);
		
		if(($num > 97 && $num < 122)) {
			$name.=chr($num);
		} else if(($num > 65 && $num < 90)) {
			$name.=chr($num);
		} else if(($num >48 && $num < 57)) {
			$name.=chr($num);
		} else if($num==95) {
			$name.=chr($num);
		} else {
			$i--;
		}
	}
	return $name;
}


// прием картинки

if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
    $picture = $_FILES['userfile'];
    $picture_ext = strrchr($picture['name'],".");

    if (eregi(".jpg", $picture_ext) || eregi(".jpeg", $picture_ext)) {
				
            move_uploaded_file($picture['tmp_name'],"../pics/temp.jpg");

            if (file_exists("../pics/temp.jpg")){
				
                // генерация имени 				
                $newname=randomName();

                // приведение к нужному размеру
                createbigthumbnail("../pics/temp.jpg","../pics/".$newname.".jpg");
				
               // удаление временного файла
               unlink("../pics/temp.jpg");
				
               // вычисление высоты для предпоказа (ширина=160)
               $size=getimagesize('../pics/'.$newname.'.jpg');
               $b=160/$size[0];
               $size[1]=round($size[1]*$b);

               if (file_exists("../pics/".$newname.".jpg")){?>
// далее добавление только что загруженной картинки 
// если там уже есть что-то вставляется в начало
// иначе просто добавляется

<script>
var imag=window.parent.document.createElement('img');
imag.src='../pics/<?=$newname?>.jpg';
imag.setAttribute('id','<?=$newname?>')
imag.style.marginTop='20px';
imag.style.width='160px';
imag.style.height='<?=$size[1]?>px';

var place=window.parent.document.getElementById('allPics');

if(place.children.length!=0){
      var i=place.children[0].getAttribute('id')
      var before=window.parent.document.getElementById(i);
      place.insertBefore(imag,before) 
}
else
{

      place.appendChild(imag) 

}
</script>

<?
                }
           }
      }
}

Skipp 09.06.2010 16:59

:lol:


Часовой пояс GMT +3, время: 21:29.