помогите с 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)
работает отлично в опере и мозилле а в эксплорере ругается мол недопустимый аргумент в последней строке |
getAttribute('id');
|
это в строках 11 и 15 вставить вместо getElementById???
|
вместо place.children[0].id
place.children[0].getAttribute('id'); и не так imag.id='newname'; а так imag.setAttribute('id','newname'); И не забывай что id должен быть уникальным и что-то я ещё упустил, вроде. |
спасибо но не помогло :(
place.appendChild(image)тоже ругается на недопустимый аргумент |
Попробуй из window.parent убрать window.
Хотя вряд ли поможет:) |
var *!*image*/!*=document.createElement('img');
*!*imag*/!*.src='../pics/newname.jpg';
Очепятка? Залогируйте image. |
тьфу блин, а я годаю(
|
ух понял, нашел
правильно было написать
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>
<?
}
}
}
}
|
:lol:
|
| Часовой пояс GMT +3, время: 21:53. |