Domi: Wie lese ich zeichen kombinationen aus

servus,
ich möchte gerne per JS die zeichen strg+f auslesen um dann einen alert loszulassen wenn man sich im linken frame befindet

kann mir bitte kurz einner nen tip geben???

weis nicht so recht wie ich das anstellen muss???

  1. strg+f bewirkt unterwindows, dass sich ein Suchfenster öffnet. Das kannste soweit ich weiß nicht abfangen.
    mfG
    Florian

  2. Hi.

    ich möchte gerne per JS die zeichen strg+f auslesen um dann einen alert loszulassen wenn man sich im linken frame befindet

    Ich hoffe du meinst die Tasten und nicht die Zeichen in einem Eingabefeld.

    kann mir bitte kurz einner nen tip geben???

    <script for="document" event="onkeydown()" language="JScript" type="text/jscript">
    <!--
     {
      if (window.event.keyCode == "17") {
    alert("So du hast Strg gedrückt");
    }
    else if (window.event.keyCode == "70") {
    alert("So du hast F gedrückt");
    }
     }
    //-->
    </script>

    Das bewirkt, dass wenn man Strg oder F drückt eine alert Meldung kommt.
    Der keyCode 17 ist die Taste Strg und die Taste 70 ist F.

    Ich hoffe ich konnte helfen, H²O

    1. Hallo,

      <script for="document" event="onkeydown()" language="JScript" type="text/jscript">
      <!--
       {
        if (window.event.keyCode == "17") {
      alert("So du hast Strg gedrückt");
      }
      else if (window.event.keyCode == "70") {
      alert("So du hast F gedrückt");
      }
       }
      //-->
      </script>

      Das bewirkt, dass wenn man Strg oder F drückt eine alert Meldung kommt.

      Nein, wie sollte es das auch? Das Script wird ausgeführt, wenn die Taste Strg gedrückt wird. Dann trifft keyCode==17 zu und es öffnet sich das Alert-Fenster mit »So du hast Strg gedrückt«. Wenn direkt nach der Strg-Taste die F-Taste gedrückt wird, während passiert nichts, denn während es während die Taste gedrückt wird, ist das alert-Fenster des Strg-Events noch offen.

      Im Übrigen würde dieser Code, wenn er denn nicht konzeptionell unlogisch wäre, nur im MSIE funktionieren.

      Der keyCode 17 ist die Taste Strg und die Taste 70 ist F.

      Eine Tastenkombination ist keine Sequenz von nacheinander gedrückten (und eventuell losgelassenen) Tasten, sondern das gleichzeitige Drücken von mehreren Tasten. Da hilft keyCode alleine nicht mehr weiter (nun gut, es ließe sich etwas mit keyup basteln, aber wie auch immer). Das Abfragen, ob die Strg-Taste bei einem Key-Event gedrückt ist, ist über die Event-Eigenschaft ctrlKey möglich, welche noch nicht DOM-standardisiert ist, aber nichtsdestoweniger relativ breit unterstützt wird (http://www.quirksmode.org/dom/w3c_events.html#keyprops):

      <script type="text/javascript">
      // Vergebe den Event-Handler
      document.onkeydown=handleKeyEvent;
      // Funktion, die den Event verarbeitet
      function handleKeyEvent (e) {
       // MSIE nimmt das Event-Objekt aus window.event, DOM-kompatible Browser aus dem e-Funktionsparameter
       if (!e) e=window.event;
       // keyCode muss 70 sein und ctrlKey true
       if (e.keyCode==70 && e.ctrlKey) {
        alert('Strg+F wurde gedrückt');
       }
      }
      </script>

      Wie gesagt ist Strg+F keine sinnvolle Kombination, da sie durch die Bank durch die Suchen im Dokument-Funktion belegt ist. Im Übrigen, was soll der Alert denn ausgeben? Soll absichtlich die Such-Funktion abgefangen werden soll, weil der Benutzer wahrscheinlich im Hauptframe statt im linken Frame suchen will? Im MSIE (6) geht das (falls nicht, vielleicht durch e.returnValue=false o.ä.), im Opera 6 wird nur das Suchfenster geöffnet, im Mozilla und Opera 7 wird sowohl das alert-Fenster als auch das Such-Fenster angezeigt.

      Mathias

      1. Das bewirkt, dass wenn man Strg oder F drückt eine alert Meldung kommt.

        Nein, wie sollte es das auch?

        Ich bitte um Verzeihung, da habe ich unaufmerksam gelesen - so, wie du die Aufgabe verstanden hast, ist deine Lösung natürlich in sich schlüssig. Du hattest ja nicht behauptet, dass sie beim gleichzeitigen Drücken von Strg *und* F einen Alert gibt, insofern ist mein Widerspruch unangebracht. Nur war das Abfragen der Tastenkombination offenbar die Frage.

        Mathias

        1. Hi.

          Ich bitte um Verzeihung, da habe ich unaufmerksam gelesen - so, wie du die Aufgabe verstanden hast, ist deine Lösung natürlich in sich schlüssig. Du hattest ja nicht behauptet, dass sie beim gleichzeitigen Drücken von Strg *und* F einen Alert gibt, insofern ist mein Widerspruch unangebracht. Nur war das Abfragen der Tastenkombination offenbar die Frage.

          Ich habe mir schon bei dem Posting davor gedacht, dass du nicht genau genug gelesen hast.
          Kann passieren.

          Vergessen und vergeben, H²O