Mon Akira: Kontextmenü von Netscape

Hi!

Ihr alle werdet dieses Thema wohl schon kennen und ich laufe Gefahr euren Haß auf mich zu vereinen wenn ich diese Frage stelle:

Wie kann ich verhindern, dass der Browser das Kontextmenü beim Rechtsklick anzeigt? Mit dem Internet-Explorer geht das ja... gibt es etwas, um es auch bei Netscape zu deaktivieren?

Ich habe ein kleines dhtml Menüsystem gebastelt, das über Rechtsklick aufgerufen wird... schaut gut aus im IE, aber nicht wenn plötzlich 2 Menüs angezeigt werden (Netscape).

Danke für eure Hilfe!

  1. Sup!

    Im NN 4.7 kannst Du ja den Rechtsklick abfangen, und dann self.blur und self.focus nacheinander aufrufen im Eventhandler - ich denke, dass verhindert das Erscheinen des Kontextmenus, sieht aber latent komisch aus.

    Und ím NN6 / Mozilla kannst Du es komplett vergessen, wie es scheint.

    Gruesse,

    Bio

  2. Natürlich gibz zu diesem Thema auch was im Forum, zB.
    http://www.teamone.de/selfhtml/sfausles/tsfa_tdd.htm

    Aber abgesehen davon kann ich Dir auch gleich meine Lösung schicken,
    die auch in NS4+ und Mozilla/NS6+ funktioniert, der entgegen der
    allgemeinen Meinung extrem viel kann; man muss nur wissen wies
    geht und dazu halt ein paar specs lesen!

    Hier also die crossbrowser-lösung:

    <html>
    <head><title>rechte Maustaste</title>

    <script language="Javascript">
    <!--

    function alternativMenu() {alert("rechte Maustaste")}

    function handleMenuEvents(mouseEvent)
     {
     if(document.all) {alternativMenu();}
     else if(document.layers)
      {
      if(mouseEvent.which==3) {alternativMenu();}
      return false;
      }
     else if(document.getElementById)
      {
      mouseEvent.preventDefault();
      if(mouseEvent.button==3) {alternativMenu();}
      }
     }

    //-->
    </script>
    </head>
    <body>

    <script language="JavaScript" type="text/javascript">
    <!--

    if(document.all) {document.body.oncontextmenu=Function("handleMenuEvents();return false;");}
    else if(document.layers){document.captureEvents(Event.MOUSEDOWN);document.onmousedown=handleMenuEvents;}
    else if(document.getElementById) {document.addEventListener("mouseup",handleMenuEvents,true);}

    //-->
    </script>
    </body>
    </html>

    1. Sup!

      Wieder was gelernt. Ist ja krass, was alles böses geht im Mozilla.
      Gar nicht mal so gut ;-)

      Gruesse,

      Bio

    2. Hallo,

      Aber abgesehen davon kann ich Dir auch gleich meine Lösung schicken,
      die auch in NS4+ und Mozilla/NS6+ funktioniert, der entgegen der
      allgemeinen Meinung extrem viel kann; man muss nur wissen wies
      geht und dazu halt ein paar specs lesen!

      Hier also die crossbrowser-lösung:

      ...(einiges an Quelltext)...

      läuft natürlich im IE und NS aber Opera ist da sturer. Der zeigt immer noch das übliche Kontexmenü.
      Weis hier jemand ob das überhaut möglich ist die rechte Maustaste bei Opera abzufangen? Und wenn ja, wie?
      Nicht dass ich sowas vorhab, im Gegenteil ich mag mein Kontexmenü und die Steuerung per Maus und bin froh, wenn man mir beides nicht so einfach wegnehmen kann.

      Grüße aus Würzburg,

      Laszlo