Dirk K.: Tastendruck Abfrage bei gleichzeitigem Mausclick

n'Abend,

erstmal vorweg ich bin sicher der totale Noob was Webseiten Erstellung betrifft. Meine Page habe ich erstellt mit der "Try and Error" Metode, will sagen fremden Code genommen und versucht die einzelnen Zeilen zu verstehen und für meine Zwecke zu modifizieren, also setzt bitte nicht unbedingt echtes Grundwissen voraus. Nun zu meinem Problem, ich möchte einige Sachen ändern und weiß nicht wirklich wo ich da ansetzen soll.

folgende Funktion

  
<script type="text/javascript">  
function show_big (Adresse)  
{  
  MeinFenster = window.open(Adresse, "Zweitfenster", "width=670,height=370,left=350,top=180");  
  MeinFenster.focus();  
}  
</script>  

wird hier aufgerufen

  
<a href="images/012a3-f.jpg" onclick="show_big(this.href); return false"><img src="images/012a3-f.jpg" hspace="40" width="350" border="1" alt="Pick 012">  

Wenn ich das Vorschau Bild anclicke wird das entsprechende Bild geladen. Nun suche ich eine Möglichkeit eine andere Version des Bildes zu laden wenn beim Click auf das Vorschau Bild gleichzeitig das "u" auf der Tastatur gedrückt wird. Ist das machbar? Hab' mich die letzten Tage intensiv mit den Tastatur Abfragen hier auf selfhtml beschäftigt, bin aber nicht wirklich schlauer geworden. Wäre nett wenn mir jemand hier einen Tritt in die richtige Richtung geben könnte.

Gruß Dirk

  1. Ich würde den Tastendruck abfangen und dann den click-Event entsprechend anpassen.
    Beim Loslassen der Taste wird dem click-Event wieder die vorherige Funktion zugeweisen.

    Ohne Grundwissen wirds schwierig, aber du hast jetzt zumindest Stichworte zum Suchen ;)

  2. Hallo,
    hab' mich das Wochenende ganz intensiv mit der Sache beschäftigt und hab' noch 'ne bessere Idee gefunden. Ich hab' mal eine Testseite erstellt und online gestellt. Bei vielen funktioniert das bei einige Testern leider nicht, zb. sagen einige der IE nimmts bei anderen nimmt er's nicht. Hier die Testseite, es funktionieren nur die Links zu den Bildern, da die Seite zum testen außerhalb der eigentlichen Webpage-Struktur liegt:

    http://www.nd-kultus.de/xyz/test/test.htm

    Beim Click auf eins der beiden Bilder öffnet sich ein neues Fenster mit der Vollversion des Bildes, beim Aufruf werden zwei Bilddateinamen als Parameter übergeben. Im neuen Fenster wird das erste Bild angezeigt, bei gedrückthalten der "u" Taste wechselt das Bild. Hier der Code der aufgerufenen Seite:

    <html>  
    <head>  
    <script type="text/javascript">  
    (function()  
    {  
    var s = window.location.search.substring(1).split('&');  
    if(!s.length) return;  
    var c = {};  
    for(var i = 0; i < s.length; i++)  
    {  
    var parts = s[i].split('=');  
    c[unescape(parts[0])] = unescape(parts[1]);  
    }  
    window.param = function(name){return name ? c[name] : c;}  
    }());  
    </script>  
    </head>  
      
    <body onload="Bild()" bgcolor="#000000">  
      
    <script type="text/javascript">  
    Frontu = new Image();  
    Frontu.src = param('pic_u');  
    function Uvbild() {  
      document.images[0].src = Frontu.src;  
    }  
    </script>  
      
      
    <script type="text/javascript">  
    Front = new Image();  
    Front.src = param('pic');  
    function Bild() {  
      document.images[0].src = Front.src;  
    }  
    </script>  
      
    <img src="javascript:Bild()">  
      
    <script type="text/javascript">  
    document.onkeydown = function(event)  
     {  
      if (event.keyCode == 85) {  
        javascript:Uvbild();  
      }  
    }  
    document.onkeyup = function(event) {  
      if (event.keyCode == 85) {  
        javascript:Bild();  
      }  
    }  
    </script>  
    </body>  
    </html>  
    
    

    Sieht jemand einen groben Fehler?

    Gruß Dirk

    1. öffnet sich ein neues Fenster

      Und was ist daran besser? IMO nicht mehr zeitgemäss und in praktisch keinem Anwendungsfall nötig.

      1. Hallo,
        sagen wir mal so es passt imho in das Konzept meiner Seite und ich fand es so am praktischten vom Handling her. Aber das ist halt Geschmackssache :) Kannst dir gerne die komplette Seite mal ansehen.

        http://www.nd-kultus.de

        Auf der Startseite links das Land auswählen, dann "Banknoten" sollte selbsterklärend sein. Unter Kambodscha ab Nr.40 ist die neue Variante schon online.

        Gruß Dirk

    2. Hi,

      Sieht jemand einen groben Fehler?

      einen? Nein, mehrere. Einer davon ist, dass du Javascript-Code hier im Posting als "HTML" markierst, so dass das Syntax-Hilighting vorne und hinten nicht passt.

      <html>

      <head>
      <script type="text/javascript">

      
      > ~~~javascript
      
      (function()  
      
      > {  
      > var s = window.location.search.substring(1).split('&');  
      > if(!s.length) return;  
      > var c = {};  
      > for(var i = 0; i < s.length; i++)  
      > {  
      > var parts = s[i].split('=');  
      > c[unescape(parts[0])] = unescape(parts[1]);  
      > }  
      > window.param = function(name){return name ? c[name] : c;}  
      > }());
      
      

      </script>

      </head>

        
      DOCTYPE fehlt, title-Element fehlt.  
        
      
      > `<body onload="Bild()" bgcolor="#000000">`{:.language-html}  
        
      Vermeide Attribute aus dem letzten Jahrtausend für die optische Ausgestaltung; dafür ist CSS da.  
        
      
      > <script type="text/javascript">  
      > ~~~javascript
      
      Frontu = new Image();  
      
      > Frontu.src = param('pic_u');  
      > function Uvbild() {  
      >   document.images[0].src = Frontu.src;  
      > }  
      > </script>  
      >   
      >   
      > <script type="text/javascript">  
      > Front = new Image();  
      > Front.src = param('pic');  
      > function Bild() {  
      >   document.images[0].src = Front.src;  
      > }
      
      

      </script>

      Das ist zumindest nicht falsch, aber sehr unbeholfen. Fragen, die sich hier aufdrängen: Warum zwei getrennte script-Blöcke? Warum steckt ein Teil, nämlich die Zuweisung an document.images[0].src, in einer Funktion, der Rest aber nicht? Und warum zwei fast identische Code-Blöcke, anstatt *einer* Funktion mit einem Parameter?

      <img src="javascript:Bild()">

      Autsch. Nein. "javascript:Bild()" ist ganz sicher keine gültige Bild-Ressource. Hier wird also kein Bild angezeigt. Zum Glück wird das ja durch den Aufruf von Bild() im onload-Handler früh korrigiert. Dann könntest du aber ebensogut einen Leerstring als src-Attribut notieren.
      Außerdem fehlt das alt-Attribut fürs Bild.

      <script type="text/javascript">

      document.onkeydown = function(event)

      {
        if (event.keyCode == 85) {
          javascript:Uvbild();
        }
      }
      document.onkeyup = function(event) {
        if (event.keyCode == 85) {
          javascript:Bild();
        }
      }

      
      > </script>  
        
      Was versprichst du dir davon, ein Label (Sprungmarke) zu setzen?  
        
      So long,  
       Martin  
      
      -- 
      Man sollte keinen Senf von sich geben, wenn man nicht auch das Würstchen dazu liefern kann.  
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(