it-swarm.com.de

Wie kann ich das Rechtsklick-Ereignis in JavaScript erfassen?

Ich möchte die Standard-Kontextmenüs blockieren und das Rechtsklick-Ereignis manuell behandeln.

Wie geht das?

214
Giffyguy

Verwenden Sie das Ereignis oncontextmenu.

Hier ist ein Beispiel:

<div oncontextmenu="javascript:alert('success!');return false;">
    Lorem Ipsum
</div>

Und mit Ereignis-Listenern:

el.addEventListener('contextmenu', function(ev) {
    ev.preventDefault();
    alert('success!');
    return false;
}, false);

Vergessen Sie nicht, false zurückzugeben, da sonst das Standard-Kontextmenü weiterhin angezeigt wird.

Wenn Sie eine von Ihnen geschriebene Funktion anstelle von javascript:alert("Success!") verwenden möchten, denken Sie daran, in BEIDEM die Funktion UND das Attribut oncontextmenu false zurückzugeben.

304
Chase

Ich denke, dass Sie so etwas suchen:

   function rightclick() {
    var rightclick;
    var e = window.event;
    if (e.which) rightclick = (e.which == 3);
    else if (e.button) rightclick = (e.button == 2);
    alert(rightclick); // true or false, you can trap right click here by if comparison
}

( http://www.quirksmode.org/js/events_properties.html )

Und dann benutze das Onmousedown auch mit der Funktion rightclick () (wenn du es global auf der ganzen Seite verwenden willst, kannst du dies tun <body onmousedown=rightclick(); >

31
cyber-guard