Необходимо отключить "контекстное меню" правой кнопкой мыши и вызвать функцию по правому клику

86
9

Я использовал oncontextmenu для вызова функции на правой клавише мыши, она отлично работает на firefox, но вызывает проблему, т.е. Контекстное меню также появляется вместе с функцией.

Мне просто нужно вызвать одну и ту же функцию, имеющую некоторые параметры в правом и левом кликах в чистом javascript.

<html>
<script>
function mouseDown(e,param) {
if (parseInt(navigator.appVersion)>3) {
var clickType=1;
if (navigator.appName=="Netscape") clickType=e.which;
else clickType=event.button;

if (clickType==1) {
alert("left" +param);
}

if (clickType!=1) {
alert('right' + param);
}
}
return true;
}

</script>
<body>
<a href="javascript:void(0)"
onclick="mouseDown(event,'test1');"
oncontextmenu="mouseDown(event,'test2');">mouse</a>
</body>
</html>

спросил(а) 2012-05-07T17:33:00+04:00 8 лет, 2 месяца назад
1
Решение
55

Вам нужно return false; в событии contextmenu, чтобы предотвратить появление меню по умолчанию.

Имейте в виду, что некоторые браузеры (в частности, Firefox) по умолчанию не позволяют JavaScript блокировать контекстные меню, поэтому вы можете столкнуться с проблемами там.

ответил(а) 2012-05-07T17:37:00+04:00 8 лет, 2 месяца назад
40

Попробуйте onmousedown вместо onclick, поскольку это может запуститься до появления контекстного меню IE, а затем вы можете остановить поведение по умолчанию с помощью jQuery .preventDefault()

ответил(а) 2012-05-07T17:40:00+04:00 8 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема