holgi: appendChild IE & Safari

Beitrag lesen

Hello,

ich glaube, IE und Safari gehen strikter mit appendChild um, nur wie?

Ich habe einen Uploader programmiert. Funktioniert im FF wunderbar. Dieser soll mehrere gleichzeitige Bilderuploads ermöglichen und den Uploadstatus in Form eines 'loading.gif' anzeigen.

Dafür habe ich ein Div, welches unterteilt ist in zwei Divs. Der erste beinhaltet die Iframes, der zweite den Status und wenn fertig das Resultat, also die Thumbs.

Im ersten Div ist zu begin ein Iframe. Im Iframe wird eine zweite PHP geladen, die erstmal nur ein Form + Fileinput anzeigt und bei Submit das Bild entgegennimmt...

Hier der Code:

  
function upload(){  
  var form  = document.getElementsByTagName('form')[0];  
  var left  = parent.document.getElementById('upload_left');  
  var right  = parent.document.getElementById('upload_right');  
  var iframe = parent.document.getElementsByTagName('iframe')[parent.upcount];  
  
  iframe.style.display='none';  
  
  parent.upcount++;  
  form.style.display="none";  
  form.submit();  
  
  right.innerHTML='<div style="width:75px; height:75px; float:left; margin:2px 2px 0px 0px; background:url(images/loading.gif) center no-repeat;">&nbsp;</div>'+right.innerHTML;  
  
  var newform = document.createElement('<iframe>');  
  newform.setAttribute('allowtransparency','true');  
  newform.setAttribute('frameborder','0');  
  newform.setAttribute('src','imageupload.php');  
  newform.setAttribute('class','imageupload');  
  
  left.appendChild(newform);  
  
 }  
  
 function success(imgsrc){  
  var right    = parent.document.getElementById('upload_right');  
  var div    = right.getElementsByTagName('div');  
  var searchstring  = eval("/loading.gif/i");  
  
  for(i=0; i<div.length; i++){  
   if(div[i].style.background.search(searchstring) != -1){  
    div[i].style.background='url(../data/images/quad_3_'+imgsrc+') center no-repeat';  
    return;  
   }  
  }  
 }  

upload() wird onchange bei Fileinput ausgeführt.
success() wird beim onload des Iframes, also nachdem das Bild entgegengenommen und verarbeitet wurde.

Das klappt soweit auch einmal, nur wird mir dann kein nächstes Iframe angezeigt, warum?

Mit innerHTML darf ich nicht arbeiten, denn JS führt dann die anderen Iframes erneut aus, das geht nach hinten los. Ich muss appenChild nehmen, damit die bereits aktiven, uplaodeden Iframes weiterarbeiten und nicht unterbrochen werden.

Jemand eine Idee?!

kollegial, Gruß