Andreas Bierhals: Willkommen im Club zur rechten Maustaste!

Hallo liebe HTML'ler!

Vor kurzem fragte ich im Chat, ob man wohl
HTML-Links statt auf die linke Maustaste auch auf
die rechte Maustaste irgendwie reagieren lassen könnte.
Die naheliegendste Frage ist dabei zunächst, wie man das
Kontextmenü wegbekommt, welches normalerweise
immer aufpoppt, wenn man den rechten Mausknopf drückt...

Nun, mit Hilfe der JS-Dokumentation aus http://developer.netscape.com/docs/manuals/javascript.html
kann man dieses Problem tatsächlich lösen.
Da einige offenbar glauben, man könne die rechte Maustaste im Web
nicht nutzen, poste ich hier einfach mal das Gegenbeispiel...

angenommen, irgendwo im Dokument steht ein Link wie z.B.

<a href="irgendwas">Test</a>

und dieser Link soll nun "doppeldeutig" gemacht werden (d.h. auf die
rechte Maustaste auch reagieren, und zwar anders...)
Zunächst definiere man irgendwo eine globale JavaScript-Variable, z.B.

var linktouched=0;

... und ändere den Link um in

<a href="irgendwas" onMouseover="linktouched=1" onMouseout="linktouched=0">Test</a>.

mit anderen Worten: Der link zeigt an, ob die Maus gerade über ihm steht oder nicht...

Danach muß man den Event-Handler zum 'MouseDown'-Event umbiegen.
Dies geschieht wie folgt:

<script language="JavaScript">
<!--
   window.captureEvents(Event.MOUSEDOWN);
  
   // neuen Event-Handler schreiben (Name beliebig)

function myMouseDownHandler(e) {
    
      // folgendes bedeutet: wenn linker Mausknopf gedrueckt wurde oder
      // die Maus nicht ueber dem Link ist, soll das passieren, was immer
      // bei gedruecktem Mausknopf passiert...
      
      if ( (e.which==1)||(linktouched==0)) {
       routeEvent(e); return true;
     }
    
     // hier kommt man jetzt nur hin, wenn
     // a) die Maus ueber dem besagten Link steht und
     // b) die rechte Maustaste gedrueckt wurde...

// Aufruf einer x-beliebigen 'alternativ-' JavaScript Funktion zum rechten Mausknopf
     // ...
  
     return false;   // weitere Bearbeitung des events verhindern
   }

window.onMouseDown=myMouseDownHandler;  // neuen Event-Handler registrieren

//-->
</script>

Ich hab diese Methode bisher nur an Netscape 4.06 getestet.
Wäre sehr daran interessiert, ob diese Methode z.B. auch mit IE4 funktioniert.

Das Kontextmenue ist übrigens nur dann abgeklemmt, wenn man sich direkt über dem
betreffenden Link befindet, an anderer Stelle auf der Seite funktioniert alles wie gewohnt.

Bei aller nun aufkommenden Euphorie (oder auch nicht...?!) sollte man jedoch
immer auch an die Mac-user denken, welche naturgemäß nur über eine
Maustaste verfügen! Sonst finden die das vermutlich echt unfair...

Viele Grüße!

Andreas

  1. Hallo Andreas!

    Der Tip mit der rechten Maustaste ist ja eine nette Spielerei. Da diese Prozedur doch ziemlich von der üblichen Bedienerführung abweicht, bezweifle ich, ob die Anwendung sinnvoll ist.

    Grüße, Harald

    1. jep ! meine meinung !

  2. Hallo!

    Vor kurzem fragte ich im Chat, ob man wohl
    HTML-Links statt auf die linke Maustaste auch auf
    die rechte Maustaste irgendwie reagieren lassen könnte.

    Ich wußte es: irgendwann fängt die Politisierung des WWW an....<g>

    Nur soviel dazu:

    <blockquote>

    lechts und rinks
    dalf man nicht
    velwechsern
    werch ein illtum!!!

    Helmut von Heißenbüttel

    </blokcquote>

    Bis danndann

    PAF (patrickausfrankfurt - nützt immer die mittlere Maustaste)

  3. Bei aller nun aufkommenden Euphorie (oder auch nicht...?!) sollte man jedoch
    immer auch an die Mac-user denken, welche naturgemäß nur über eine
    Maustaste verfügen! Sonst finden die das vermutlich echt unfair...

    hi <beiss> ...dann muessen die sich halt mal richtige combudä anschaffen...

    (sorry, kann mich grad nicht zurückhalten 8->

    cu, gunn

  4. Hallo nochmal!

    Erstmal vielen Dank für eure Kommentare! <g>!

    In eigener Sache... wofür soll mal wohl die rechte Maustaste gebrauchen, wenn nicht
    für irgendwelche (un-)sinnigen Spiele?!  ;-)

    Im Falle von Netscape bin ich - wie erwähnt - mittlerweile schlauer
    geworden. Seitdem ich in SelfHtml aber mittlerweile den (etwas versteckten)
    Link <../../tecbc.htm#a1> gefunden
    habe, bin ich mir jetzt sicher, daß diese Methode so mit MSIE *nicht*
    funktionieren kann. Werde mir wohl das Teil auch endlich mal installieren müssen :-(
    Ansonsten wäre es natürlich super, wenn jemand anders schon eine
    rechte-Maustasten-Lösung für MSIE parat hätte...

    Viele Grüße!

    Andreas