Jochen Gebauer: Funktionsablauf für gewisse Zeit unterbrechen

Hi,

ich möchte als Reaktion auf einen Tastendruck mehrere Wörter nacheinander an der selben Stelle anzeigen. Im Beispiel unten sollte Wort1 eigentlich 1 sek angezeigt werden und dann mit Wort2 ausgetauscht werden. Leider funktioniert das Script aber nicht. Das erste Wort zeigt sich überhaupt nicht an und nach 1ner Sek erhalte ich dann das zweite Wort. Kann mir jemand erklären warum es nicht funktioniert und wie man das Script anständig zum Laufen bringt?

if ( window.event.keyCode == 32 ) {
    visibleItem = "Wort1" ;
    document.getElementByID("pos1").innerHTML = visibleItem ;
    interruptFunction() ;
    visibleItem = "Wort2" ;
    document.getElementByID("pos1").innerHTML = visibleItem ;
}

Und hier noch die Funktion "interruptFunction":

function interruptFunction() {
    date = new Date() ;
    var curDate = null ;
    do {
        var curDate = new Date() ;
    }
    while ( curDate - date < 1000) ;
}

  1. Dafür nimmt man normalerweise in Javascript window.setTimeout

    1. Hi Elmar,

      tausend Dank es funktioniert und ist wesentlich kürzer als meine "Diletantenlösung"...

  2. hi,

    ich möchte als Reaktion auf einen Tastendruck mehrere Wörter nacheinander an der selben Stelle anzeigen. Im Beispiel unten sollte Wort1 eigentlich 1 sek angezeigt werden und dann mit Wort2 ausgetauscht werden.

    Für zeitgesteuerte Abläufe gibt es in Javascript window.setInterval() und window.setTimeout().

    Und hier noch die Funktion "interruptFunction":

    Nee, sowas mit einer Schleife lösen zuu wollen, die immer wieder die Zeit abfragt, ist Quatsch - kostet jede Menge Prozessorzeit.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }