Grafzahl: Wieso wird der OnMouseMove Event nicht registriert?

Ich habe hier folgende Seite, deren Zweck ein Redirect nach einer Minute ist, wenn der Benutzer nichts tut. Der Redirect klappt ganz gut, nur dummerweise wird der Benutzer immer nach einer Minute zurückgeschickt, egal, ob er was tut oder nicht. Wo ist der Fehler?

Danke,
     Grafzahl

html>
<head>
<script language="JavaScript">
<!--
if(window.Event)
 document.captureEvents(Event.MOUSEMOVE);
 document.onmousemove=reset();

function redirect()
{
 aktiv = window.setTimeout("location.replace('index.htm')",60000);

}

function reset()
{
 window.clearTimeout(aktiv);
 redirect();
}

// -->
</script>
<title>Testseite</title>
</head>
<body onLoad=redirect()>

Blubb

</body>
</html>

  1. Ich habe hier folgende Seite, deren Zweck ein Redirect nach einer Minute ist, wenn der Benutzer nichts tut. Der Redirect klappt ganz gut, nur dummerweise wird der Benutzer immer nach einer Minute zurückgeschickt, egal, ob er was tut oder nicht. Wo ist der Fehler?

    Wahrscheinlich müsstest du die Variable "aktiv" global definieren:

    <script language="JavaScript">
    <!--
    var aktiv;

    if(window.Event)
     document.captureEvents(Event.MOUSEMOVE);
     document.onmousemove=reset();
     function redirect()
     {
     aktiv = window.setTimeout("location.replace('index.htm')",60000);
     }

    function reset()
    {
     window.clearTimeout(aktiv);
     redirect();
    }

    // -->
    </script>

    Noch besser wär's aber wahrscheinlich, wenn du den Benutzer selbst entscheiden lässt, wann er welche Seite sehen will. Oder wird das ein Service, bei dem der Besucher Geld für's Surfen bekommt und deshalb alle 10 Minuten etwas machen muss? Dann hilft dir JavaScript nicht viel, weil sich das ganz einfach ausschalten lässt.

    Robert

  2. Ich habe hier folgende Seite, deren Zweck ein Redirect nach einer Minute ist, wenn der Benutzer nichts tut. Der Redirect klappt ganz gut, nur dummerweise wird der Benutzer immer nach einer Minute zurückgeschickt, egal, ob er was tut oder nicht. Wo ist der Fehler?

    Danke,
         Grafzahl

    html>
    <head>
    <script language="JavaScript">
    <!--
    if(window.Event)

    hier fehlt "{"

    document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove=reset();

    hier fehlt "}"

    function redirect()
    {
    aktiv = window.setTimeout("location.replace('index.htm')",60000);

    @Robert: Variablen, die in Funktionen ohne den Bezeichner "var" gesetzt werden, sind automatisch global.

    }

    In folgender Funktion bzw. ihrem Aufruf liegt der Fehler.

    function reset()
    {
    window.clearTimeout(aktiv);

    Du stoppst den Timeout (angestoßen durch den onLoad-Handler)

    redirect();

    Und startest in bei einer Mausbewegung gleich wieder.

    redirect() wird also sowohl bei onLoad (= "Nichtstun") und onMouseMove aufgerufen, also immer.

    }

    Grüße,
    Martin