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

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

这是怎么做到的?

401566 次浏览

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

   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甚至与函数右键()(如果你想在整个页面上全局使用它,你可以这样做<body onmousedown=rightclick(); >

使用oncontextmenu事件。

这里有一个例子:

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

并使用事件监听器(从2011年的评论 credit到桔梗科植物):

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

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

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