Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2010, 14:07
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

помогите с 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)

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

Последний раз редактировалось bushstas, 09.06.2010 в 14:11.
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2010, 14:14
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

getAttribute('id');
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2010, 14:18
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

это в строках 11 и 15 вставить вместо getElementById???
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2010, 14:22
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

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

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

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

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

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

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

Последний раз редактировалось Skipp, 09.06.2010 в 14:25.
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2010, 14:26
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

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


place.appendChild(image)
тоже ругается на недопустимый аргумент
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2010, 14:39
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Попробуй из window.parent убрать window.
Хотя вряд ли поможет
__________________
.
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2010, 15:28
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

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


Очепятка? Залогируйте image.
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2010, 15:29
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

тьфу блин, а я годаю(
__________________
.
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2010, 16:58
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

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

правильно было написать
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>

<?
                }
           }
      }
}

Последний раз редактировалось bushstas, 09.06.2010 в 17:45.
Ответить с цитированием
  #10 (permalink)  
Старый 09.06.2010, 16:59
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите нубу Fongolcs Работа 34 19.05.2010 22:45
Помогите новичку с выпадающим списком interest Элементы интерфейса 5 19.05.2010 13:15
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28
insertBefore выдаёт ошибку и не работает на опере и фоксе SunnyDay Общие вопросы Javascript 3 19.09.2008 12:08