michael: Eventhandler (onkeydown)

Hallo,

ich habe Probleme mit Ereignisbehandlung. Ich habe als Grundlage für meine Tests das Beispiel für Eventhandler von SelfHTML genommen.
So wie ich das verstanden habe sollte hierbei eine Funktion aufgerufen werden, sobald ich eine Taste drücke während der NN den Focus hat ?! Dabei tut sich allerdings nicht...Ich weiss nicht wo der Fehler liegt. Es sollte (laut SelfHTML) funktionieren.

es wäre wirklich nett wenn mir da jemand weiterhelfen könnte :-)

danke und tschüss Michael

--
hier der Quellcode:

<html><head><title>Test</title>

<script language="JavaScript1.2">

var Netscape = new Boolean();
    if(navigator.appName == "Netscape")  Netscape = true;  
    function TasteGedrueckt(Ereignis)
      {
      if(Netscape)
        {
        alert("Taste mit Dezimalwert " + Ereignis.which + " gedrueckt");
        return true;
        }
      }  
    function TasteLosgelassen(Ereignis)
      {
      if(Netscape)
        {
        alert("Taste mit Dezimalwert " + Ereignis.which + " losgelassen");
        return true;
        }
      }
    document.onkeydown = TasteGedrueckt;
    document.onkeyup = TasteLosgelassen;

</script>
                              
<body>
Hallo, dies ist ein Test!
</body>

</html>

  1. Hallo Michael!

    So wie ich das verstanden habe sollte hierbei eine Funktion aufgerufen werden, sobald ich eine Taste drücke während der NN den Focus hat ?! Dabei tut sich allerdings nicht...Ich weiss nicht wo der Fehler liegt. Es sollte (laut SelfHTML) funktionieren.

    Bei mir funktioniert Dein Skript.

    alert("Taste mit Dezimalwert " + Ereignis.which + " gedrueckt");

    Probleme könnte es beim onkeyup-Event geben. Du gibst den Wert mit einer alert-Box aus. Die musst Du wegklicken während Du Deine Taste gedrückt hälst, ansonsten wird die onkeyup-Fkt. nicht ausgeführt.
    Um den Vorgang besser nachvollziehen zu können solltest Du den Wert in der Statuszeile ausgeben, also so:
    window.status = "Taste mit Dezimalwert " + Ereignis.which + " gedrueckt";

    Hoffe das hilft Dir weiter.

    Gruss
    Mirko

    1. Hi Mirko!

      Das hat mir leider nicht wirklich geholfen :-(
      Bei mir gibt es nicht die kleinste Reaktion, ich kann drücken was ich will.
      Ich habe vergessen zu sagen dass ich Netscape (4.73 für Linux) verwende,
      vielleicht ist der ja garnicht im Stande das zu machen ?!

      Bei mir funktioniert Dein Skript.

      alert("Taste mit Dezimalwert " + Ereignis.which + " gedrueckt");

      Das Alert habe ich deswegen genommen, weil ich dachte...naja, in der Statuszeile kann man sowas leicht übersehen
      (die Flackert bei mir immer sobald ich die Maus bewegen)

      Um den Vorgang besser nachvollziehen zu können solltest Du den Wert in der Statuszeile ausgeben, also so:
      window.status = "Taste mit Dezimalwert " + Ereignis.which + " gedrueckt";

      Das ändert auch nichts. bei mir wird ja nicht einmal die Funktion aufgerufen, die das Ereignis behandeln soll.

      Hoffe das hilft Dir weiter.

      nicht wirklich, trotzdem danke :-)

      tschüss Michael