una pagina oncontextmenu inspeccionar false elemento deshabilitar derecho contextual como clic bloquear javascript contextmenu

pagina - Cómo deshabilitar el menú contextual contextual en JavaScript



deshabilitar menu contextual javascript (6)

Esta pregunta ya tiene una respuesta aquí:

No es que esté tratando de evitar ''Ver fuente'' o algo así de tonto, pero estoy creando algunos menús contextuales para ciertos elementos.

EDIT: respuesta a las respuestas: lo he intentado:

<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>


Capture el evento onContextMenu y devuelva falso en el controlador de eventos.

También puede capturar el evento click y verificar qué botón del mouse event.button el evento con event.button , en algunos navegadores de todos modos.


No puede confiar en los menús contextuales porque el usuario puede desactivarlos. La mayoría de los sitios web quieren usar la función para molestar al visitante.


Nota al margen oscura: nunca he visto una secuencia de comandos de clic derecho que funcione en Opera, incluso si Opera está configurado para permitir la interceptación con el botón derecho (que está desactivada por defecto).


Si no le importa alertar al usuario con un mensaje cada vez que intente hacer clic derecho, intente agregarlo a su etiqueta corporal.

<body oncontextmenu="return false;">

Esto bloqueará todo acceso al menú contextual (no solo desde el botón derecho del mouse, sino también desde el teclado)

Sin embargo, realmente no tiene sentido agregar un deshabilitador de clic derecho. Cualquier persona con conocimiento básico del navegador puede ver el origen y extraer la información que necesita.


Si su página realmente se basa en el hecho de que las personas no podrán ver ese menú, debe saber que los navegadores modernos (por ejemplo, Firefox) le permiten al usuario decidir si realmente desea deshabilitarlo o no. Entonces no tienes garantía de que el menú esté realmente deshabilitado.


Yo he usado esto:

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){ ... }

Luego capturo la propiedad e.keyCode en esas dos últimas funciones: si e.keyCode == 93, sé que el usuario soltó el botón derecho del mouse o presionó / ​​soltó la tecla Menú contextual.

Espero eso ayude.