我想在HTML5画布上停止鼠标右键,打开上下文菜单,因为它会妨碍鼠标控制游戏。
我尝试将oncontextmenu="return false;"
添加到canvas
代码属性中。这在画布使用2D上下文时有效,但在Firefox和Chrome中使用WebGL上下文时不。
这是由标准指定的还是两个同时发生的浏览器错误?有没有办法解决这个问题并在WebGL上下文中阻止右键单击?
答案 0 :(得分:7)
结果可能因浏览器而异,因此请确保此功能适用于所有目标浏览器。我只在Chrome中试过。
yourCanvas.addEventListener('contextmenu', function(e) {
if (e.button === 2) {
e.preventDefault();
return false;
}
}, false);
工作示例:http://jsfiddle.net/cK9Rt/
(它会在控制台中说“test”但不会显示上下文菜单)
答案 1 :(得分:0)
阻止默认浏览器操作时,我使用以下代码
element.onevent=function(e){
e.preventDefault();
return false;
}
此代码绝对确保不会发生默认操作
永远不要使用html属性来阻止默认值。
当我看到你的问题时,我在同样的情况下尝试了这个:
canvas.oncontextmenu=function(e){
e.preventDefault();
return false;
}
它完全按预期工作。
我希望这可以帮助任何未来的观众了解这个问题