Как отключить контекстное меню правой кнопкой мыши в JavaScript [дубликат]



этот вопрос уже есть ответ здесь:



Не то, чтобы я пытаюсь предотвратить "просмотр источника" или что-то глупое, но я делаю некоторые пользовательские контекстные меню для определенных элементов.



изменить: ответ на ответы: я пробовал это:



<a id="moo" href=''> </a>

<script type="text/javascript">
var moo = document.getElementById('moo');

function handler(event) {
event = event || window.event;

if (event.stopPropagation)
event.stopPropagation();

event.cancelBubble = true;
return false;
}

moo.innerHTML = 'right-click here';

moo.onclick = handler;
moo.onmousedown = handler;
moo.onmouseup = handler;
</script>
591   5  

5 ответов:

захват onContextMenu событие, и возвращает false в обработчик событий.

вы также можете захватить событие щелчка и проверить, какая кнопка мыши запустила событие с event.button в некоторых браузерах все равно.

Если вы не заботитесь о предупреждении пользователя с сообщением каждый раз, когда они пытаются щелкнуть правой кнопкой мыши, попробуйте добавить это в свой тег тела

<body oncontextmenu="return false;">

это заблокирует весь доступ к контекстному меню (не только с правой кнопки мыши, но и с клавиатуры)

однако на самом деле нет смысла добавлять правый клик disabler. Любой человек с базовыми знаниями браузера может просматривать источник и извлекать необходимую информацию.

я использовал этот:

document.onkeydown = keyboardDown;
document.onkeyup = keyboardUp;
document.oncontextmenu = function(e){
 var evt = new Object({keyCode:93});
 stopEvent(e);
 keyboardUp(evt);
}
function stopEvent(event){
 if(event.preventDefault != undefined)
  event.preventDefault();
 if(event.stopPropagation != undefined)
  event.stopPropagation();
}
function keyboardDown(e){
 ...
}
function keyboardUp(e){
 ...
}

затем я ловлю свойство e.keyCode в этих двух последних функциях - если e.keyCode == 93, я знаю, что пользователь либо отпустил правую кнопку мыши, либо нажал/отпустил клавишу контекстного меню.

надеюсь, что это помогает.

Если ваша страница действительно полагается на то, что люди не смогут увидеть это меню, вы должны знать, что современные браузеры (например Firefox) позволяют пользователю решить, действительно ли он хочет отключить его или нет. Таким образом, у вас нет никакой гарантии, что меню будет действительно отключено.

вы не можете полагаться на контекстные меню, потому что пользователь может отключить его. Большинство веб-сайтов хотят использовать эту функцию, чтобы раздражать посетителя.

Comments

    Ничего не найдено.