Javascript 为什么可以';我不能使用addEventListener停止contextmenu事件吗?

Javascript 为什么可以';我不能使用addEventListener停止contextmenu事件吗?,javascript,javascript-events,Javascript,Javascript Events,我想禁止鼠标右键。但我发现,如果我写这篇文章: document.addEventListener('contextmenu', function(event) { return false; }, false); 它将不起作用,事件仍将起作用 但是如果我这样写的话 document.oncontextmenu = function() { return false; } 鼠标右键不起作用 我想知道为什么我不能使用addEventListener来停止事件contextmen

我想禁止鼠标右键。但我发现,如果我写这篇文章:

document.addEventListener('contextmenu', function(event) {
    return false;
}, false);
它将不起作用,事件仍将起作用

但是如果我这样写的话

document.oncontextmenu = function() {
    return false;
}
鼠标右键不起作用

我想知道为什么我不能使用
addEventListener
来停止事件
contextmenu

如“”中所述,返回
false
值不足以阻止默认操作。您需要调用
Event
对象上的
preventDefault()
方法:

document.addEventListener('contextmenu', function(event) {
   event.preventDefault();
}, true); 

我认为您需要
使用capture
,尝试将true作为第三个参数传递给
document.addEventListener()
看看这是否能解决问题。

什么是上下文菜单?并非所有浏览器都允许您在整个页面上禁用上下文菜单。为什么这样,我们使用event.perventDefault(),而不是返回false?@qiuyuntao不确定原因,但事实是
oncontextmenu
是doElement的一个属性,但是,
addEventListener
是一种方法。也许浏览器的js引擎以不同的方式处理它们。