Javascript 禁用右键单击画布
我正在使用画布和html在屏幕上绘制。我需要的是只用左键点击画图,右键点击什么也不做。我尝试了以下方法:Javascript 禁用右键单击画布,javascript,canvas,html5-canvas,Javascript,Canvas,Html5 Canvas,我正在使用画布和html在屏幕上绘制。我需要的是只用左键点击画图,右键点击什么也不做。我尝试了以下方法: canvas.oncontextmenu = e => { e.preventDefault(); e.stopPropagation(); } 它禁用了右键单击菜单,但我可以通过左键和右键单击按下画布(并最终在画布上绘制)。我错过了什么?试试: <canvas oncontextmenu="return false;"></canvas>
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; });
让我试试:)当你发布回复时,解释一下,即使是正确的。在你的情况下,有更多的答案,所以你应该揭露你的答复的优点和缺点。