How can I capture the right-click event in JavaScr

2019-01-01 13:05发布

问题:

This question already has an answer here:

  • Is right click a Javascript event? 14 answers

I want to block the standard context menus, and handle the right-click event manually.

How is this done?

回答1:

Use the oncontextmenu event.

Here\'s an example:

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

And using event listeners:

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

Don\'t forget to return false, otherwise the standard context menu will still pop up.

If you are going to use a function you\'ve written rather than javascript:alert(\"Success!\"), remember to return false in BOTH the function AND the oncontextmenu attribute.



回答2:

I think that you are looking for something like this:

   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)

And then use the onmousedown even with the function rightclick() (if you want to use it globally on whole page you can do this <body onmousedown=rightclick(); >