Hartmut R.: setTimeout in einem Frame, clearTimeout in einem anderen

Beitrag lesen

Hallo ...!

Bei Geschichten wie Deiner ist es viel leichter, wenn Du mal die URL angibst.

Wie ich das sehe, musst Du die Variable "tm" als global definieren, weil sie sonst nur fuer die Dauer der Funktion "CloseMenu()" haelt.
Ausserdem musst Du sie in der Function "function Zu()" resetten, weil sonst beim erneuten onMouseOver die Funktion "Auf()" nicht startet. Hier der Code:

____________frameset.htm:

<html>
<head>
</head>
<frameset  rows="90px,*">
   <frame src="oben.htm" name="oben">
   <frame src="haupt.htm" name="haupt">
</frameset>
<body>

</body>
</html>

__________haupt.htm:

<html>
<head>
</head>
<body>
<div id="navmenu" style="position:absolute; top:10; left:10; visibility:hidden;" onMouseOver="parent.oben.OpenMenu()">
<img src="beispielgrafik.gif" width=100 height=60 alt="beispielgrafik" border=1>
</div>
</body>
</html>

__________oben.htm:

<html>
<head>
<script language="JavaScript">
<!--
var tm;
function Zu()
{
    parent.haupt.document.all.navmenu.style.visibility="hidden";
    tm = "";
}

function Auf()
{
    parent.haupt.document.all.navmenu.style.visibility="visible";
}
function OpenMenu()
{
    if (tm)
    {
        parent.oben.clearTimeout(parent.oben.tm);
    }
    else { Auf(); }
}
function CloseMenu()
{
    tm = setTimeout("Zu()",500)
}
//-->
</script>
</head>
<body>
<a href="#" onMouseOver="OpenMenu()" onMouseOut="CloseMenu()"><img src="Beispiel.gif" width=100 height=60 alt="beispielgrafik" border=1></a>
</body>
</html>

Viele Gruesse
Hartmut R.