Norbert Klein: onKeyDown - spezielle Taste definieren?

Beitrag lesen

Hallo.

Mich interessiert, ob man für Event-Handler wie OnKeyDown oder OnKeyPress eine bestimmte Tase definieren kann, so dass das Ereignis zB nur erfolgt, wenn der anwender die Leertaste drückt.
Geht sowas überhaupt mit Javascript?

Wenn man abfragt, welche Taste gedrückt wurde, geht das.

Mit window.event ? window.event.keyCode : e.which kann der aktuelle CharCode abgefragt werden, welcher dann mit String.fromCharCode in das entsprechende Zeichen umgewandelt und in einer Variaben gespeichert werden kann. Im Nachfolgenden kann man dann abfragen, welche Taste gedrückt wurde (wenn du eine Aktion ausführen möchtest, sobald ein Buchstabe gedrückt wurde, solltest du in der Abfrage sowohl Klein- als auch Großschreibung des jeweiligen Buchstabens berücksichtigen) und entsprechend reagieren.

Schlußendlich könnte das Ganze dann so aussehen:

<script type="text/javascript">
<!--
 document.onkeydown = function(e)
  {
   var key = String.fromCharCode(window.event ? window.event.keyCode : e.which);
   if(key == " ")
    {
     window.alert("BUH!");
    }
   if(key == "a" || key == "A")
    {
     window.alert("BUHWAA!");
    }
  }
//-->
</script>

Gruß
Norbert