如何在 JavaScript 中捕获右键单击事件?

我想阻止标准上下文菜单,并手动处理右键单击事件。

这是如何完成的?


答案 1

使用事件。oncontextmenu

下面是一个示例:

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

并使用事件侦听器(来自2011年的评论):

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

不要忘记返回 false,否则标准上下文菜单仍将弹出。

如果您要使用您编写的函数而不是 ,请记住在函数和属性中都返回 false。javascript:alert("Success!")oncontextmenu


答案 2

我认为你正在寻找这样的东西:

   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)

然后使用onmousedown,即使使用函数rightclick()(如果你想在整个页面上全局使用它,你可以这样做<body onmousedown=rightclick(); >