Javascript 通过添加事件侦听器(';行不通 通过事件处理程序禁用上下文菜单

Javascript 通过添加事件侦听器(';行不通 通过事件处理程序禁用上下文菜单,javascript,Javascript,我正在尝试禁用右键单击元素。我找到了一个这样的解决方案: <div oncontextmenu='return false'></div> 让test2=document.getElementById('test2')) test2.addEventListener('contextmenu',(e)=>{ console.log('右键单击!') 返回错误 }) div{ 高度:100px; 宽度:100px; 边框:1px纯黑; } #测试1{ 背景色:红色; }

我正在尝试禁用右键单击元素。我找到了一个这样的解决方案:

<div oncontextmenu='return false'></div>
让test2=document.getElementById('test2'))
test2.addEventListener('contextmenu',(e)=>{
console.log('右键单击!')
返回错误
})
div{
高度:100px;
宽度:100px;
边框:1px纯黑;
}
#测试1{
背景色:红色;
}
#测试2{
背景颜色:蓝色;
}

这是一种奇怪的行为。由于某些原因,来自
.addEventListener
返回false
不起作用(在最新稳定的chrome中测试)。您需要调用如下所示的
.preventDefault()
方法,并返回
false
,以在现代和古代浏览器中获得所需内容。右键单击会记录到控制台,但不会显示上下文菜单

注意,我为样式添加了一些分号。虽然在您的示例中,它们在技术上是不需要的,但是将它们包括在内是一个很好的实践

让test2=document.getElementById('test2'))
test2.addEventListener('contextmenu',(e)=>{
log('右键单击!');
e、 preventDefault();//==添加了此===
返回false;
});
div{
高度:100px;
宽度:100px;
边框:1px纯黑;
}
#测试1{
背景色:红色;
}
#测试2{
背景颜色:蓝色;
}

<div id='test'></div>
let test = document.getElementById('test')

test.addEventListener('contextmenu', (e) => {
  console.log('right click!')
  return false
})