Javascript 禁用右键单击画布

Javascript 禁用右键单击画布,javascript,canvas,html5-canvas,Javascript,Canvas,Html5 Canvas,我正在使用画布和html在屏幕上绘制。我需要的是只用左键点击画图,右键点击什么也不做。我尝试了以下方法: canvas.oncontextmenu = e => { e.preventDefault(); e.stopPropagation(); } 它禁用了右键单击菜单,但我可以通过左键和右键单击按下画布(并最终在画布上绘制)。我错过了什么?试试: <canvas oncontextmenu="return false;"></canvas>

我正在使用画布和html在屏幕上绘制。我需要的是只用左键点击画图,右键点击什么也不做。我尝试了以下方法:

canvas.oncontextmenu = e => {
    e.preventDefault();
    e.stopPropagation();
}
它禁用了右键单击菜单,但我可以通过左键和右键单击按下画布(并最终在画布上绘制)。我错过了什么?

试试:

<canvas oncontextmenu="return false;"></canvas>

试试这个:

canvas.addEventListener('mousedown',(事件)=>{
if(event.which!==1){
event.preventDefault();
}
});
它还应该禁止出现上下文菜单。单击鼠标中键也不会产生任何效果

事件。它包含被按下的鼠标按钮的索引
1
是左边的按钮,
2
是中间的按钮,
3
是右边的按钮。
preventDefault()
防止执行默认浏览器行为(例如打开上下文菜单等,它可以在许多情况下应用)

顺便说一下,
stopPropagation()
用于停止在子元素上执行此类事件(在本例中,上下文菜单打开)<代码>
没有子标记,因此可以忽略它。

尝试以下操作:

const canvas = document.getElementById('myCanvas');
canvas.oncontextmenu = () => false;
其中myCanvas最终是给定给画布的ID,即

<canvas id="myCanvas"></canvas>

您可以使用以下功能:

canvas.bind('contextmenu', function(e){
    return false;
}); 

使用Jquery:

$('body').on('contextmenu', '#myCanvas', function(e){ return false; });

让我试试:)当你发布回复时,解释一下,即使是正确的。在你的情况下,有更多的答案,所以你应该揭露你的答复的优点和缺点。