Sabbi: Link durch Tsastendruck aktivieren

Hallo Jungs und Mädels,

Ich würde gerne einen Link mit Tastendruck ausführen.
Konkretes Beispiel:
Ich habe einen Wochen-Kalender, der aus grafischen Platz-Gründen in einem recht großen Fenster dargestellt wird. Da dieser Kalender diverse Formulare innerhalb der einzelnen Tabellen hat, kann ich die Links, für "eine Woche vor" und "eine Woche zurück" nur unter dieser Tabelle anzeigen lassen, da einige Werte aus Berechnungen mit übergeben werden. Dass zieht jetzt nach sich, dass der User immer erst ganz nach unten scrollen muss und zusätzlich noch genz nach rechts, wenn er z.B. "eine Woche vor" möchte. Und ganz nervig wird es dann, wen er gleich mehrere Wochen vor möchte.
Es wäre eine wesentliche Verbesserung des Händlings, wenn man halt statt der ganzen scrollerei einfach nur eine Taste auf der Tastatur drücken könnte. Z.B. "Pfeil Links" und "Pfeil rechts". Ich habe nur leider keine Ahnung, unter welcher Rubrik ich da im Handbuch schauen müsste, bzw. wie das funktioniert.

Ich hoffe Ihr konntet mein Problem bzw. die frage nachvollziehen, sodass ich auf hilfreiche Antworten hoffen kann.

Liebe Grüsse

Sabbi

  1. Hi Sabbi!

    Guck dir doch mal das Beispiel hier an:
    http://de.selfhtml.org/javascript/objekte/event.htm#allgemeines

    Grüsse,
    Richard

    1. Hi,

      Guck dir doch mal das Beispiel hier an:
      http://de.selfhtml.org/javascript/objekte/event.htm#allgemeines

      Eine weitere Lösung, die auch ohne Javascript funktioniert und einfacher umzusetzen ist wäre es, für Links einen Accesskey anzugeben. Der Nachteil ist jedoch, dass du eine Kombination aus mehreren Tasten und keine einzelne Taste drücken musst.

      mfG,
      steckl

      1. Hi, steckl

        Hab da mal herumgestöbert, aber die BEispiele Funktionieren nicht!
        Habe den originalcode kopiert!

        Aber weder einzeln noch in verbindung mit der "ALT"-Taste und auch mit der "ALT-GR"-Taste - micht passiert...

        :(

        1. Hi,

          Hab da mal herumgestöbert, aber die BEispiele Funktionieren nicht!
          Habe den originalcode kopiert!

          Aber weder einzeln noch in verbindung mit der "ALT"-Taste und auch mit der "ALT-GR"-Taste - micht passiert...

          Welchen Browser verwendest du? Ich habs mal im FF2 ausprobiert und dort muss ich z.B. "Alt+Shift+p" drücken, damit dem Link gefolgt wird.

          mfG,
          steckl

          1. Hi,

            Dieser Kalender wird ausschließlich nur vom Internetexplorer aufgerufen und dient auch nur zu internen Zwecken, ist also der öffentlichkeit nicht zugänglich.
            Von daher braucht man da auch keine Schikanen einbauen, wenn man mit nem anderen Browser kommen sollte.

            Mit Deinem allerersten Tipp, waren wir der Lösung doch schon sehr nahe.
            Ich muss ja nur noch irgendiwe den Tastencode (der mir ja im document ausgegeben wird) in eine Variable speichern, die ich dann mit dem Link verknüpfen muss.

            Ich probier schon die ganze Zeit herum, aber ich bekomm´s einfach nicht hin...

            Sabbi

            1. Folgenden Code habe ich jetzt:

              <html><head><title>Test</title>
              <script type="text/javascript">
              function Tastendruck (Ereignis)
              {
              if (!Ereignis)
                  Ereignis = window.event;
                  alert(Ereignis.keyCode);
              }

              document.onkeypress = Tastendruck;
              </script>

              </head><body>
              <p>Taste drücken!</p>
              </body></html>

              Beschreibung:
              sobald ich eine Taste drücke, (nur Buchstaben) öffnet sich ein kleines Fenster in dem der ASCI-Code angezeigt wird.

              wie bekomme ich diesen Wert statt in dieses Fenster in eine Variable, mit der ich dann im Body arbeiten kann?

              ODER

              wie kann ich der Function sagen, dass wenn ein bestimmter Wert erfüllt ist, ein Link ausgeführt sird?

              1. Hi,

                  
                
                > function Tastendruck (Ereignis)  
                > {  
                > if (!Ereignis)  
                
                Ob diese Abfrage hier nötig ist weiß ich nicht.  
                
                >     Ereignis = window.event;  
                >     alert(Ereignis.keyCode);  
                
                Das alert kann weg, wenn du weisst, welchen keyCode die Taste hat.  
                if(Ereignis.keyCode== derCodeDerVonDirGewaehltenTaste)  
                {  
                  location.href= urlDerNeuenSeite;  
                }  
                
                > }  
                  
                
                > document.onkeypress = Tastendruck;  
                
                

                mfG,
                steckl

                1. Hi steckl!

                  Das war aber ein Spoiler - ich hatte in meinen Posts doch auf alles notwendige hingewiesen. * --- grummel - einmal macht man echt auf SELFhtml und dann --- *
                  ;)

                  Grüsse,
                  Richard

                  1. Hi,

                    Das war aber ein Spoiler - ich hatte in meinen Posts doch auf alles notwendige hingewiesen. * --- grummel - einmal macht man echt auf SELFhtml und dann --- *
                    ;)

                    Sorry, mir war grad langweilig.
                    Aber du hast schon recht, ich werd versuchen mich zu bessern :)

                    mfG,
                    steckl

                2. Tja, all die Mühe Umsonst...

                  Hat zwar alles geklappt mit dem Link per Tastendruck, aber leider kann ich nur die anfänglichen Daten mit übergeben.

                  Ich benötige aber die Daten, die später im "Body" modifiziert werden.

                  Hat da noch einer ne Idee?

                  Sabbi

                  1. Hi,

                    Hat zwar alles geklappt mit dem Link per Tastendruck, aber leider kann ich nur die anfänglichen Daten mit übergeben.

                    Ich benötige aber die Daten, die später im "Body" modifiziert werden.

                    Ich versteh dein Problem nicht.

                    Du kannst doch auf die gleiche Seite weiterleiten, auf die sonst dein Link weiterleiten würde.
                    Wie du auf diese Adresse zugreifen kannst wurde dir von Richard vorhin schon gezeigt.

                    mfG,
                    steckl

    2. Hallo Richard,

      Ich hab mir das ganze mal angesehen, und glaube schon, dass es der richtige Weg ist. Allerdings bin ich kein Profi in Javascript und weiß nicht wirklich, wie ich jetzt diesen Tastencode, der einem ja gegeben wird, in einer Variable speichern kann. Oder kann ich schon oben im SCRIPT sagen, dass der Link aktiviert werden soll, sobald die Taste gefrückt wird?

      Sabbi

      1. Hi,

        Ich hab mir das ganze mal angesehen, und glaube schon, dass es der richtige Weg ist. Allerdings bin ich kein Profi in Javascript und weiß nicht wirklich, wie ich jetzt diesen Tastencode, der einem ja gegeben wird, in einer Variable speichern kann. Oder kann ich schon oben im SCRIPT sagen, dass der Link aktiviert werden soll, sobald die Taste gefrückt wird?

        Du kannst ja oben den Tastencode der gedrückten Taste mit if abfragen, und dann, wenn der Code zur entsprechenden Taste gehört, mit location.href auf diese Seite verweisen.

        mfG,
        steckl

        1. Hi,

          Du kannst ja oben den Tastencode der gedrückten Taste mit if abfragen, und dann, wenn der Code zur entsprechenden Taste gehört, mit location.href auf diese Seite verweisen.

          aber das müsste ich doch noch oben im SCRIPT vorm Body tun oder nicht.
          Wie gesagt, JAVASCRIPT ist absolut nicht meine Welt. Da wüsste ich z.B. nicht einmal wie ich die If-Anweisung gestallten sollte. Die sieht da doch ein bischen anders aus als in PHP, oder nicht?

          Gruß Sbbi

      2. Hi Sabbi!

        Ja, kannst du:
        http://de.selfhtml.org/javascript/objekte/location.htm#href*

        Und wenn (aus welchen Gründen auch immer) du nicht direkt den href des links wiederholen kannst/willst, so kannst du wie folgt vorgehen:
        -den link holen:
        http://de.selfhtml.org/javascript/objekte/links.htm
        und dann als Quelle für * verwenden.

        Grüsse,
        Richard

        PS.: die Lösung von Steckl ist am besten zusätzlich zu implementieren;
        Dann können auch User mit deaktiviertem JS die Funktion nützen. Nachteil: Wie bereits beschrieben, muss man 2 Tasten verwenden, und mE kann man auch nicht die Pfeiltasten verwenden. Ich würde dann klassisch "wasd" für die Pfeiltasten annehmen.