Oliver Dzierzon: Verschachteltes Javascript

Beitrag lesen

Hallo,

brauche Eure Hilfe.

ich habe ein äußeres Javascript, das, nachdem die Seite vollständig geladen wurde (onLoad) aufgerufen wird. Die Funktion besteht darin, die zur Verfügung stehende  Fenstergrösse zu ermitteln (var breite = document.body.offsetWidth;) und anhand dieses Wertes ein Select-Feld zu generieren. Über dieses soll es möglich sein die Breite eines Frames auzuwählen. Dieser Wert soll nun über das  innere Javascript, das durch das äußere generiert wurde an ein anderes document übermittelt werden (document.location = url).

Nun habe ich das Problem, dass äußere javascript  zwar noch einwandfrei fuktioniert, wenn ich aber eine Auswahl im Select-feld treffe, kommt folgende Fehlermeldung:

'document.form1.cols.length' ist Null oder kein Object

Wo liegt mein Fehler, wer kann mir helfen ?

Hier noch mal der ganze Code

<html>
<head>
<title>Frame Generator</title>

<script language="javascript">

//Hier beginnt das äußere Javascript

function neu_aufbau()
{
var script_border = "script";

//var box -> Definition des inneren Javascripts

var box = "<"+script_border+" language='javascript'>\n";
box = box +"function vorschau()\n";
box = box +"{\n";
box = box +"for(i=0;i<document.form1.cols.length;++i)\n";
box = box +"{\n";
box = box +"if(document.form1.cols.options[i].selected == true)\n";
box = box +"{\n";
box = box +"var columns = document.form1.cols.options[i].value;\n";
box = box +"}\n";
box = box +"}\n";
box = box +"url = 'vorschau.html?columns=' + columns;\n";
box = box +"document.location = url;\n";
box = box +"}\n";
box = box +"</"+script_border+">\n";

//Ende der Definition des inneren Javascripts

var hoehe = document.body.offsetWidth;
var col = 0;
var option="";
while(col <= hoehe)
{

option = option + "<option value='"+col+"'>"+col+"</option>\n";
col = col + 15;
}

//Select Field-> onChange soll inneres javascript aufrufen
option = '<select name="cols" onChange="vorschau()">\n'+option+'\n</select>';

//hier beginnt das vom äußeren javascript generierte document
document.write('<html><head><title>Frame Generator</title>\n');

//Generierung des inneren Javascripts
document.write(box+'\n');

document.write('</head>\n');
document.write('<body bgcolor="#ffffff" text="#000000">\n');
document.write('<form name="form1"></form><table border="0" width="800" height="100%" align="center">\n');
document.write('<tr><td align="center"><img src="images/frame1_m.jpg" border="0" width="500" height="374" alt="frameset1"></td></tr>\n');
document.write('<tr><td align="center"><font face="arial" size="3" color="#000000">Cols= '+option+',* px</font></td></tr>\n');
document.write('</table></form>\n');
document.write('</body></html>\n');
}

</script>
</head>

<body bgcolor="#FFFFFF"  text="#000000" onLoad="neu_aufbau();">
</body>
</html>

Das ganzen ist zwar nur ne Spielerei zur Übung, aber es läßt mir trotzdem keine Ruhe.

Vielen dank

Ciao Olli :-)