Как запретить браузеру открывать диалоговое окно, когда пользователь нажимает правую кнопку мыши? - PullRequest
1 голос
/ 24 сентября 2011

Я делаю игру, она использует элемент 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 ]

2 голосов
/ 24 сентября 2011

Используйте self.oncontextmenu и вызовите warnDefault для события.

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

Обратите внимание, что некоторым пользователям может не понравиться отключение их контекстного меню.

2 голосов
/ 24 сентября 2011

Он включен, а не включен.

В этом случае используйте

self.oncontextmenu=function() { return false }

или

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

в простой JS

2 голосов
/ 24 сентября 2011

Вы можете попробовать это:

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