Moin nochmal,
ich zitiere mal aus Deinem Quellcode:
===8><==================================
var ie = document.all;
var nn = document.layers;
var summe = new Array("unterne");
var unterne_mp = new Array("mpportr", "mpleist", "mpstrat", "mpfacts", "mpjobs");
var unterne_mp_pos = new Array();
function init()
{
for(var i = 0; i < summe.length; i++)
{
for(var x = 0; x < eval(summe[i] + ".length"); x++)
{
if(nn) { eval(summe[i] + "_mp_pos[x] = document.layers[" + summe[i] + "_mp[x]].pageY"); }
if(ie) { eval(summe[i] + "_mp_pos[x]= document.all[" + summe[i] + "_mp[x]].offsetTop;"); }
}
}
alert(unterne_mp_pos.join(","));
// Bei alert sollte nun dies zu sehen sein
// 45,65,85,105,125
}
===8><==================================
Wenn man in der inneren Schleife das eval() auflöst, kommt folgendes dabei heraus:
for(var x = 0; x<unterne.length; x++) { ... }
Das Problem daran: "unterne.length" existiert nicht, wohl aber unterne_mp.length!
Der Fehler "invalid character", der weiter unten auftritt, ist offenbar ein Folgefehler
davon. Wenn Du die Schleife umänderst in
for(var x=0; x < eval(summe[i] + "_mp.length"); x++) { ... }
sind die JS-Errors beseitigt, und das alert-Fenster erscheint so, wie Du es im Quelltext
weiter unten angekündigt hattest. Den Fehler konnte ich übrigens erst sehen, als ich
die eine Zeile in der Schleife in
if (nn) { alert(summe[i] + ......); }
verändert habe.
Danach gab es zum ersten mal eine hilfreiche Fehlermeldung von Netscape ("unterne not defined").
Warum diese Fehlermeldung vorher nicht kam, ist mir sehr rätselhaft - ein Folgefehler
eines Fehlers verhindert sozusagen, daß vom ersten Fehler eine vernünftige Fehlermeldung
erscheint. Ist das die künstliche Intelligenz von Javascript?! ;-)
Bis dannundwann
Andreas