Stefan Richter: Opera 9 - Rechtsklick-Menü

Hallo.

Also um erstmal eines vorwegzunehmen, das hier ist zwar sicherlich ein heiß umstrittenes Thema, wo die Meinungen weit auseinander driften: Javascript bzw. DHTML Rechtsklick-Menüs.
Ob es nun sinnvoll ist oder nicht, stelle ich hier nicht zur Frage...

Mein Hauptanliegen ist folgendes:

Bisher waren JS Rechsklick-Menüs unter Opera < v9 komplett verboten... ab Opera 9.x gibt es nun wie unter Mozilla / Firefox die Möglichkeit die Behandlung von Rechtsklicks durch Scripte übernehmen zu lassen.

Problem dabei ist, auch wenn ich diese Option aktiviere funktioniert kein JS Rechtsklick-Menü unter Opera? Hat Opera dafür spezielle Events eingeführt oder gibt es einen anderen Trick...?

document.oncontextmenu funktioniert auf jedenfall schonmal nicht.. document.onmousedown bringt zwar das gewünschte Menü, blendet aber das eigene Kontextmenü des Opera darüber.

Ist dies ein gewollter Effekt von Opera, Rechtsklicks zwar zulassen, aber trotzdem das eigene Menü überblenden?

  1. hi,

    Bisher waren JS Rechsklick-Menüs unter Opera < v9 komplett verboten... ab Opera 9.x gibt es nun wie unter Mozilla / Firefox die Möglichkeit die Behandlung von Rechtsklicks durch Scripte übernehmen zu lassen.

    Nee, "Allow Scripts to receive right clicks" gibt's auch schon im 8er, und im 7er IIRC auch.

    document.onmousedown bringt zwar das gewünschte Menü, blendet aber das eigene Kontextmenü des Opera darüber.

    Auch mit return false?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Nee, "Allow Scripts to receive right clicks" gibt's auch schon im 8er, und im 7er IIRC auch.

      Okay, das wusste ich nicht... die älteren Versionen von Opera kamen für mich aber sowieso nicht in Frage, da die alle ein bisschen Buggy waren und viele Sachen nicht richtig unterstützt haben.
      Die 9er Version ist meiner Meinung nach die erste richtig funktionierende Version des Opera... (leider immernoch mit kleinen Einschränkungen).

      document.onmousedown bringt zwar das gewünschte Menü, blendet aber das eigene Kontextmenü des Opera darüber.

      Auch mit return false?

      Funktioniert leider auch nicht. Das Standard Kontextmenü wird immer eingeblendet.

      Kann ja sein das es spezielle Events oder Funktionen nur für den Opera gibt... ansonsten muss ich mir halt etwas anderes einfallen lassen... auch wenn dies unschön ist.
      Meiner Meinung nach sollte es dem User überlassen sein, ob er solche Effekte haben möchte (in dem Falle kann man das ja wie z.B. im Firefox abstellen). Aber ein Browser sollte solche Funktionen nicht komplett verbieten. Vielleicht wirds ja dann in Opera 10.x... ich meine die haben ja jetzt auch transparente Frames eingebaut, was es vorher auch nicht gab.

      1. Moin!

        Meiner Meinung nach sollte es dem User überlassen sein, ob er solche Effekte haben möchte (in dem Falle kann man das ja wie z.B. im Firefox abstellen). Aber ein Browser sollte solche Funktionen nicht komplett verbieten. Vielleicht wirds ja dann in Opera 10.x... ich meine die haben ja jetzt auch transparente Frames eingebaut, was es vorher auch nicht gab.

        Was würde es dir dann helfen?

        Wenn du ein eigenes Rechtsklickmenü einbaust, dann ja sicher nicht zum Spaß, sondern weil du damit Bedienbarkeit realisieren willst.

        Und nach deiner eigenen Argumentation hat der Benutzer des Browsers die Freiheit zu entscheiden, ob eine Webseite Rechtsklicks empfangen soll, oder nicht.

        Was dann zur Konsequenz hat, dass sich für dich die Nutzung von Rechtsklicks zur Bedienung wieder verbietet. Weil: Der Benutzer wird's höchstwahrscheinlich abgeschaltet haben.

        In meinen Augen kannst du für eine Webseite ausschließlich davon ausgehen, dass du "Linksklicks" kriegst. "Rechtsklicks" sollten ausschließlich dem Benutzer und dessen Bedienabsichten für den Browser vorbehalten sein.

        Abgesehen davon ist es sowieso fraglich, ob Rechtsklickmenüs immer die ideale Lösung zur Bedienung sind. Denn sie sind keinesfalls offensichtlich, der Benutzer muß damit rechnen, dass er dadurch Funktionalität steuern kann. Der alleinige Weg zu solchen Funktionen darf ein Rechtsklickmenü deshalb sowieso nicht sein.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Also in meinem Falle spielen die Kontext-Menüs schon eine wichtige Rolle, und das wird dir jeder User auf meiner Seite bestätigen!

          Ich entwickle selbst ein Browsergame (JS-basierend), bei dem eine 3D Spielkarte den Mittelpunkt darstellt... um nun verschiedene Funktionen auszuführen kann man bspw. in IE, Firefox, SeaMonkey etc. ganz einfach per Kontextmenü die gesamte Karte verwalten... ich habe natürlich auch Ersatzfunktionen für Leute eingebaut, die Browser verwenden, welche Rechtsklick Behandlungen nicht unterstützen... nur das wird dann eher als umständlich angesehen.
          In meinem Falle sind aber auch die anderen Events schon belegt, wie onclick oder ondblclick (also bleibt ja nur noch der rechtsklick).

          Bspw. wie wenn man unter Windows / Linux keinen Rechtsklick auf Dateien, Ordner etc. machen könnte um dort bestimmte Funktionen einfacher auszuführen... sowas würde man doch auch als störend empfinden, wenn diese Funktionalität gesperrt ist.

          Natürlich ist es jedem Benutzer selber überlassen ob er nun halt eigene JS Kontextmenüs durch seinen Browser zulässt... aber man kann ja den Hinweis auf seiner Seite bringen, Achtung: einfachere Verwalrung bei Verwendung der rechten Maustaste.

          1. hi,

            Ich entwickle selbst ein Browsergame (JS-basierend), bei dem eine 3D Spielkarte den Mittelpunkt darstellt... um nun verschiedene Funktionen auszuführen kann man bspw. in IE, Firefox, SeaMonkey etc. ganz einfach per Kontextmenü die gesamte Karte verwalten... ich habe natürlich auch Ersatzfunktionen für Leute eingebaut, die Browser verwenden, welche Rechtsklick Behandlungen nicht unterstützen... nur das wird dann eher als umständlich angesehen.

            Hm, klingt für mich gerade schwer vorstellbar. Gibt's ein Online-Beispiel?

            In meinem Falle sind aber auch die anderen Events schon belegt, wie onclick oder ondblclick (also bleibt ja nur noch der rechtsklick).

            Also irgendwie ein UserInterfaceOverkill, hm?

            Bspw. wie wenn man unter Windows / Linux keinen Rechtsklick auf Dateien, Ordner etc. machen könnte um dort bestimmte Funktionen einfacher auszuführen... sowas würde man doch auch als störend empfinden, wenn diese Funktionalität gesperrt ist.

            Bei diesem Menü weiss ich aber genau, was für Funktionalitäten mich dort erwartet - und demzufolge nutze ich es auch, wenn ich eine davon brauche, und sonst nichts.

            Und vom Rechtsklickmenü in meinem Browser erwarte ich auch ganz bestimmte Funktionalitäten - und keine anderen.
            Das soll keine "Belehrung" darstellen - für mich ist eine solche Art der Bedienung auf einer Webseite nur reichlich fehl am Platze. Ich will nicht lernen müssen, wie man einzelne Webseiten zu bedienen hat - sondern ich will "das WWW" von meinem Browser aus bedienen, und das auf die gewohnte Weise, egal wo ich bin. Mein Browser hat eine gewisse Usability, die ich gewohnt bin und die mir gefällt - da möchte ich nicht ständig umdenken müssen, wenn ich das WWW noch gar nicht verlassen habe, sondern nur auf eine andere Webseite im nächsten Tab gewechselt bin.
            Webseiten, die Bedienungshandbücher erfordern (würden), meide ich.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hm, klingt für mich gerade schwer vorstellbar. Gibt's ein Online-Beispiel?

              Ein Online-Beispiel gibt es, aber dazu müsstest du dich erst registrieren! http://www.evolution-wars.de

              Also irgendwie ein UserInterfaceOverkill, hm?

              Naja, es sind halt viele Funktionen auf engstem Platz untergebracht, was aber die Bedienung wesentlich vereinfacht.

              Bei diesem Menü weiss ich aber genau, was für Funktionalitäten mich dort erwartet - und demzufolge nutze ich es auch, wenn ich eine davon brauche, und sonst nichts.

              Und vom Rechtsklickmenü in meinem Browser erwarte ich auch ganz bestimmte Funktionalitäten - und keine anderen.
              Das soll keine "Belehrung" darstellen - für mich ist eine solche Art der Bedienung auf einer Webseite nur reichlich fehl am Platze. Ich will nicht lernen müssen, wie man einzelne Webseiten zu bedienen hat - sondern ich will "das WWW" von meinem Browser aus bedienen, und das auf die gewohnte Weise, egal wo ich bin. Mein Browser hat eine gewisse Usability, die ich gewohnt bin und die mir gefällt - da möchte ich nicht ständig umdenken müssen, wenn ich das WWW noch gar nicht verlassen habe, sondern nur auf eine andere Webseite im nächsten Tab gewechselt bin.
              Webseiten, die Bedienungshandbücher erfordern (würden), meide ich.

              Das verstehe ich schon, bin z.B. auch ein Gegner von solchen Rechtsklick Sperraktionen... aber es gibt halt gewisse Beispiele, wo eigene Kontextmenüs eine feine Sache sind und das "WWW" deutlich vereinfachen.

  2. Hallo,

    Den contextmenu-Event unterstützt Opera nicht. Die neue Einstellung in Opera 9 bezieht sich darauf, ob Rechtsklicks überhaupt Mouseup/-down-Events erzeugen. Das Kontextmenü ist meines Wissens nicht abschaltbar. eventobjekt.preventDefault() bzw. return false alleine wirken nicht. Für http://de.selfhtml.org/navigation/anzeige/rechte_maustaste.htm hatte ich mal den Workaround gefunden, ein alert() zu öffnen - das kommt für dich aber nicht in Frage.

    Mathias