lousypoetry: onKeyDown - spezielle Taste definieren?

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?
Danke!

  1. nein in der form ist das nicht möglich. so ähnlich aber ist das hier: http://selfhtml.teamone.de/javascript/objekte/event.htm

    gruß hein

  2. Hallo,

    ich ahbe da gerade so ein ähnliches Problem [pref:t=61499&m=346921] am Hacken. Ich will die DnArrow und die UpArrow-Tasten abfangen.

    Bei MSIE geht das mit

    onKeyDown=... oder onKeyUp=...

    Dann steht anschließend in

    window.event.keyCode

    der Scancode der Taste drin.

    Soweit bin ich inzwischen. Man kann den dann abfragen. Aber nach dem Ende des Eventhandlers sthet der Code immer noch drin in dem Byte. Wenn man den da nicht rausholt, löst er anschließend noch die "normale Funktion" aus. Wie bekommt man also den KeyCode aus dem Tastaturpuffer raus?

    Grüße

    Tom

  3. 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

    1. Hallo, Leute !
      Ein Blick in die einschlägige Literatur hilft meist weiter !
      Der ASCII-Code für die Leertaste ist die Zahl 32.
      Mit 'ner if-Abfrage kann ich die gedrückten Leertaste eine Funktion ausführen lassen.
      Mit den Curdor-Steuertasten geht das auch irgendwie, da bin ich allerdings überfordert.
      Die Spielebastler haben das aber alle drauf !
      Nur ist deren Code i.d.R. eher was für Profis !
      Drück' halt mal ein bißchen mit dem Keyboard herum !
      So long  ! :o)

      <html><head><title></title>
      <script language="javascript">
      if (navigator.appName=="Netscape")
      {
      window.document.captureEvents (Event.KEYPRESS);
      }
      window.document.onkeypress = taste;
      function taste(evt)
      {
      if (navigator.appName=="Netscape")
      {
      if (evt.which == 32)
      {alert ("Hallo, lousybrowser !");}
      else{alert (evt.which);}
      }
      if (navigator.appName=="Microsoft Internet Explorer");
      {
      if (event.keyCode ==  32)
      {alert ("Hallo, lousybrowser !");}
      else{alert (event.keyCode);}
      }}
      </script></head><body></body></html>