当用户单击鼠标右键时,如何阻止浏览器打开对话框?

时间:2011-09-23 20:56:00

标签: javascript html5 browser canvas mouse

我正在制作游戏,它使用canvas元素,我需要两个鼠标按钮。当用户按下鼠标右键时,如何通过打开该对话框来停止浏览器(我希望它能够在大多数主要浏览器中运行,因此,最好是解决方案是通用的)。我怎么能用JavaScript做到这一点?我试过这个,但它不起作用:

self.onClick = function(ev)
{
    if(ev.button == 2)
    {
        ev.preventDefault();
    }

    var x = ev.clientX - self.canvas.offsetLeft;
    var y = ev.clientY - self.canvas.offsetTop;
    input.mouse = {"button": ev.button, "click": true, "x": x, "y": y};
}

然后将全局变量输入发送到要处理的服务器。

编辑:它现在有效。我必须编辑canvas元素(canvas oncontextmenu =“return false”)

3 个答案:

答案 0 :(得分:2)

你可以试试这个:

self.oncontextmenu = function() {
    return false;
};

答案 1 :(得分:2)

使用self.oncontextmenu并在事件上调用preventDefault。

self.oncontextmenu = function(e) {
  e.preventDefault();
}

请注意,某些用户可能不喜欢您禁用其上下文菜单。

答案 2 :(得分:2)

它是onclick而不是onClick

在这种情况下使用

self.oncontextmenu=function() { return false }

self.oncontextmenu=function(e) { e.preventDefault(); }

in plain JS