Первоначальный вопрос был о том, как прекратить щелчок правой кнопкой мыши , учитывая, что пользователь может отключить JavaScript : это звучит гнусно и зло (отсюда и отрицательные ответы) - но все дубликаты перенаправляются сюда, хотя многие дубликаты просят менее злых целей.
Как, например, использование правой кнопки мыши в играх HTML5. Это может быть сделано с помощью встроенного кода выше, или немного лучше, например:
document.addEventListener("contextmenu", function(e){
e.preventDefault();
}, false);
Но если вы создаете игру, помните, что при нажатии правой кнопки мыши запускается событие contextmenu , но также запускаются обычные mousedown и mouseup события тоже. Поэтому вам нужно проверить свойство which события, чтобы увидеть, была ли кнопка мыши левой (которая === 1), средней (которая === 2) или правой (которая === 3) это запускает событие.
Вот пример в jQuery - обратите внимание, что нажатие правой кнопки мыши вызовет три события: событие mousedown, событие contextmenu и событие mouseup.
// With jQuery
$(document).on({
"contextmenu": function(e) {
console.log("ctx menu button:", e.which);
// Stop the context menu
e.preventDefault();
},
"mousedown": function(e) {
console.log("normal mouse down:", e.which);
},
"mouseup": function(e) {
console.log("normal mouse up:", e.which);
}
});
Так что, если вы используете левую и правую кнопки мыши в игре, вам придется выполнить некоторую условную логику в обработчиках мыши.