DOM appendChild und IE-Schnittstelle nicht unterstützt

MichaelRadke

Mitglied
Hallo Forum,

auf einer Webseite will ich ein Formular dynamisch um Checkboxen erweitern, das klappte auch schon ganz gut - solange ich ohne Popup für die einzufügenden User arbeitete.

- Hauptfenster: mit Frames (ist leider nicht zu ändern)
- Popup-Fenster soll im Frame ein Formular erweitern

Im Popup versuche ich das so :

Code:
function addmod(uid,uname) {
  var moderatoren = opener.document.getElementById("moderatorenliste");    
  
  var neuDIV = document.createElement("DIV");
  var neuBOX = document.createElement("INPUT");
  neuBOX.setAttribute("defaultChecked","checked");
  neuBOX.setAttribute("checked","checked");
  neuBOX.setAttribute("type","checkbox");  
  neuBOX.setAttribute("name","feldname[" + uid + "]");
  neuBOX.setAttribute("value","yes");
                  
  neuDIV.appendChild(neuBOX);
                             
  var neuTEXT = document.createTextNode(uname);
  neuDIV.appendChild(neuTEXT);

  moderatoren.appendChild(neuDIV);
}

Das klappt auch. Im Firefox.

Im IE erhalte ich die Fehlermeldung "Schnittstelle nicht unterstützt" für die Funktion appendChild(), ein insertBefore() klappt auch nicht. Ich suche mir jetzt schon so lange den Wolf und erlaube mir, Euch einfach mal an meinem Problem teilzuhaben.

Vielleicht hilfts ja - wär prima! Danke im Voraus!

Michael Radke
 
Du kannst nicht einen Knoten, den du in dem einen Dokument erzeugst, in ein anderes einfügen.

Das Sinnvollste wäre, du packst die Funktion in das opener-Dokument, und rufst sie dort von dem Popup aus auf.
 
Sven,

ich danke Dir

Mein Code lautet jetzt :
Code:
function addmod(uid,uname) {
  var opi = opener.document;
  var moderatoren = opi.getElementById("moderatorenliste");
  
  var neuDIV = opi.createElement("DIV"); 
  var neuBOX = opi.createElement("INPUT"); 
  neuBOX.setAttribute("defaultChecked","checked");
  neuBOX.setAttribute("checked","checked");
  neuBOX.setAttribute("type","checkbox");
  neuBOX.setAttribute("name","feldname[" + uid + "]");
  neuBOX.setAttribute("value","yes");
                  
  neuDIV.appendChild(neuBOX);
                                    
  var neuTEXT = opi.createTextNode(uname);
  neuDIV.appendChild(neuTEXT);

  moderatoren.appendChild(neuDIV);
}

"opi" bezieht sich jetzt auf das Document des öffnenden Fensters, und so funktionierts dann auch. Prima+DANKE!

Gruß,
Michael Radke
 
Zurück