Wir designen gerade unsere Schulhompage neu und ich schribe ein JavaScrip-Menü dafür.
Hier könnt ihr euch das mal ansehen:
www.dbg2-gl.de/newDbg/main.php
Wenn ihr Opera benutzt, werdet ihr euch wahrscheinlich wundern, was ich von euch will, den im Opera funzt alles ordnungsgemäß. Aber im IE läuft es nicht (geht es eigentlich im Mozilla?).
Meine Debugging-Versuche, dass ich glaube, das es an dieser Funktion liegt, die im onload ausgeführt wird:
Code:
function onload()
{
//---BEGIN: generieren der Menüeinträge---//
var i=0,i2=0;
for(i=0; i<=items.length-1;i++)
{
tbl =document.getElementById('tbl'+items[i][0]);
var therow =tbl.insertRow(tbl.rows.length);
if (!parseInt(items[i][2])) //wenn es um NICHT um einen Link in ein Untermenü geht
{
therow.onmouseover ="genLine("+items[i][0]+");";
// DEBUGGING: alert(therow.onmouseover);
therow.insertCell(0).innerHTML =items[i][1].link(items[i][2]); //einfach den Link einfügen
}
else
{
therow.onmouseover ="genLine("+items[i][2]+");"; //ein onmouseover-event zum aufklappen des Untermenüs einfügen
// DEBUGGING: alert(therow.onmouseover);
therow.insertCell(0).innerHTML =items[i][1]; //text einfügen
document.getElementById(items[i][2]).style.top =65+tbl.rows.length*16+"px";
}
}
//---ENDE: generiren der Menüeinträge---//
document.getElementById('0').style.width =breite[0]+"px"; //breite des obersten menüs festlegen
}
der entscheidene Teil liegt in dieser Zeile:
therow.onmouseover ="genLine("+items[i][0]+");";
bzw. dem entsprechenden Fall im else-Fall.
bloß die Funktion genLine wird nie aufgerufen. wenn ich diesen alert verwende, vor dem oben DEBUGGING steht, dann wird auch der korrekte Funktionsaufruf ausgegeben. Eine alertbox, die ich in der Funktion genLine platziert habe, erschien jedoch nie.
(Das sind so meine Ideen, ich weiß nicht, ob ich nicht möglicherweise völlig falsch liege...)
Was mache ich falsch?
EDIT:
1. Im IE ist auch die Hintergrundfarbe falsch. Normalerweise ist das menü heller, als das ganze drumrum und dunkler als der Teil in der Mitte.
2. Wenn jemand für diese Zeile:
document.getElementById(items[i][2]).style.top =65+tbl.rows.length*16+"px";
noch eine bessere Lösung hat (soll die Höhe des divs eine Untermenüs errechnen, wäre ich auch dankbar. weil so ganz kommt die Berechnung nicht hin udn es Variert auch ein wenig von Computer zu Computer und Browser zu Browser...
[edit=sakura] [Klammern entfernt] Mfg, sakura[/edit]
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.
Have a lot of fun!