Anular menu contextual

Problema:

Impedir el menú contextual, botón derecho del ratón

al pulsar sobre el botón derecho del ratón en una página web puedes seleccionar y copiar texto o abrir enlaces en otras vnetanas y pestañas. Es un menú contextual.

A veces puedes querer evitar este menú por el tipo de p´gina o para evitar que copien imágenes.

Solución

Usar el evento mousedown

Para evitar que el botón derecho del ratón active el correspondiente menú desplegable basta con crear un getor para el evento mousedown sobre el documento o una parte del mismo.

El gestor comprobará la propiedad button del objeto event: y si se trata del botón derecho puede no hacer nada o emitir una ventana alert, además de lanzar otras acciones que te interesen.

La clave para los botones pulsados es:

  • event.button 1 Botón izquierdo pulsado (o en binario bit 0 activado)
  • event.button 2 Botón derecho pulsado (o en binario bit 1 activado)
  • event.button 4 Botón central pulsado (o en binario bit 2 activado)

Es necesario advertir que esta protección puede saltarse de forma muy sencilla: pulsando el botón derecho sobre la barra de estado y desplazar el ratón para soltarlo sobre el elemento en el que deseemos ver el menú contextual.

Además el inspector de código (F12)  también permite acceder al código de la página.

Ejemplo

En este ejemplo se desactiva el botón para cualquier parte del documento

document.addEventListener('mousedown', noboton)

function noboton(ev)

{

if (ev.button & 2)
     alert("Botón inactivo.");
}

scripts