writeln und <input>

NinjaOne

Erfahrenes Mitglied
Hallo,
hab da mal ein Problem.
Ich hab mir diese Function geschrieben und rufe sie mit <body onload="Pa ()"> auf.
Das klappt auch. Aber wenn ich die erstellten Buttons anklicke bekomme ich einen Laufzeitfehler. Kann mir jemand sagen was ich falsch mache ?

Code:
function Pa () {
     var Namen=new Array ("BauA","BauB","BauC","BauD","0");

     window.document.writeln("<center><form name='But'>");
     var i=0;
     while(Namen[i]!="0") {
       window.document.writeln(Namen[i]);
       window.document.writeln("<input type='button' name='"+Namen[i]+"' value='Bauen' onclick='ButtAuswerten ("+i+","+Namen[i]+")' />");
       i++;
     }
     window.document.writeln("<br></form></center>");
  }

function ButtAuswerten (TButto,Stufe) {  

}

Schon mal danke für eure Mühe, bye.
 
Das Problem ist der onload im <body>-Tag. document.write() und document.writeIn() müssen vor dem Fertigladen der Seite ausgeführt werden, ansonsten überschreiben sie den Inhalt des gesamten Dokuments. In deinem Fall führt das Ausführen nach dem Landen (onload) dazu, dass nur deine Buttons und sonst gar nichts im Dokument steht. D.h. auch die Funktion ButtAuswerten() wird durch dein Script gelöscht. Das führt zu einem Laufzeitfehler.

Folgendes funktioniert einwandfrei:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
 <head><title>Untitled</title><meta name="AUTHOR" content="con-f-use@gmx.net" /><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   
   <script type="text/javaScript">
   	function ButtAuswerten(TButto,Stufe) {  
   		alert(TButto + Stufe);
   	}
   </script>
   
   </head><body>
   
   <script type="text/javascript">
   	var Namen=new Array ("BauA","BauB","BauC","BauD");
   
   	window.document.writeln("<center><form name='But'>");
   	var i=0;
   	while(Namen[i]) {
   	 window.document.writeln(Namen[i]);
 	 window.document.writeln('<input type="button" name="'+Namen[i]+'" value="Bauen" onclick="ButtAuswerten('+i+',\''+Namen[i]+'\')" />');
   	 i++;
   	}
   	window.document.writeln("<br></form></center>");
   </script>
   
   </body></html>
 
Zuletzt bearbeitet:
Zurück