Ich rufe über folgendes Script einen Layer auf:
<script language="JavaScript" type="text/javascript">
<!--
function show_it(id)
{
if(window.opera || (document.getElementById && !document.all))document.getElementById(id).style.visibility = 'visible';
else if(document.all)document.all[id].style.visibility = 'visible';
else if(document.layers)document.layers[id].visibility = 'show';
}
function hide_it(id)
{
if(window.opera || (document.getElementById && !document.all))document.getElementById(id).style.visibility = 'hidden';
else if(document.all)document.all[id].style.visibility = 'hidden';
else if(document.layers)document.layers[id].visibility = 'hide';}
//-->
</script>
Und über die Eventhandler onMouseover und onMouseOut im Div lasse ich den Layer anzeigen, solange sich die Maus auf dem Layer befindet.
Soweit, sogut. Funktioniert auch alles prächtig in allen Browsern, ausser NN4.*, da dieser keine Eventhandler in Div´s interpretieren kann.
Nur bei Mozilla tritt ein seltsames Phänomen auf:
Wenn man mit der Maus schnell über die Links fährt, beginnt der Layer fürchterlich zu flackern.
Ich vermute, daß er das Überfahren eines Links als MouseOut interpretiert.
Deshalb versuchte ich, die Funktion hide_it(div_Menu) über einen Timeout aufzurufen, was aber zu einem JS-Error führte:
Der Aufruf:
onMouseOut="window.setTimeout('hide_it(divMenu)',500);"
Die Fehlermeldung:
'document.all[...].style' ist null oder kein Objekt.
Irgendwie krieg ich das nicht auf die Reihe, ohne Timeout geht´s und mit gibt´s plötzlich einen Error.
Kann mir da wer weiterhelfen?
Gruß
Kurt