使用WebGL上下文阻止在画布中右键单击

时间:2011-12-03 19:10:47

标签: javascript html5 canvas webgl

我想在HTML5画布上停止鼠标右键,打开上下文菜单,因为它会妨碍鼠标控制游戏。

我尝试将oncontextmenu="return false;"添加到canvas代码属性中。这在画布使用2D上下文时有效,但在Firefox和Chrome中使用WebGL上下文时

这是由标准指定的还是两个同时发生的浏览器错误?有没有办法解决这个问题并在WebGL上下文中阻止右键单击?

2 个答案:

答案 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;
}

它完全按预期工作。

我希望这可以帮助任何未来的观众了解这个问题