Deshabilitar el botón derecho

10/Sep/2009 JavaScript , , , , 8 Comentarios

En este ejemplo vamos a ver como bloquear el botón derecho del ratón para evitar que el usuario pueda sacar el menú contextual. Esto es bueno ya que en este menú contextual aparece, entre otras opciones, la de mostrar código fuente.

Ahora que podemos pensar que suprimiendo este menú contextual evitamos que nuestro código fuente sea inspeccionado, si bien existen otras formas de que nuestro código fuente sea sustraido. Eso si, se plantean muchas trabas a la hora de que nuestro código fuente sea inspeccionado.

Una de las peores cosas que tiene Internet son las discrepancias entre los diferentes navegadores. En parte entendibles por la lentitud en la estandarización de los comités (lentitud en comparación con la velocidad de desarrollo de la red).

Aunque DOM Level2 Events intenta estandarizar el control de eventos. No es posible a día de hoy hacer un script único para los diferentes navegadores. Y en todo este embolado, Opera no ofrece el soporte de cancelación de eventos y promueve el uso del menú contextual obtenido por el botón derecho. Un lio.

Si una cosa sigue estando más o menos clara, aunque del tema presionar y el soltar un botón podríamos hacer un monologo, es que los eventos se pueden capturar con el onmousedown. Eso sí, esto puede no evitar el que el navegador lance el menú contextual. A si que no está de más el parar al menú contextual con el atributo oncontextmenu. Al cual, solo necesitaremos darle un valor de false.

  1. document.onmousedown=anularBotonDerecho;
  2. document.oncontextmenu=new Function("return false");

A la hora de calcular el botón presionado tenemos dos alternativas. Los navegadores Internet Explorer siguen basándose en la propiedad event.button y el valor 2 (botón derecho).

  1. if (event.button == 2) {
  2. alert("Botón derecho pulsado");
  3. }

Por su parte, Firefox y Chrome se apoyan en la propiedad which y sus valores 2 y 3.

  1. if (e.which == 3 || e.which == 2) {
  2. alert("Botón derecho pulsado");
  3. }

A si que además de validar el botón pulsado, añadiremos en la validación el navegador sobre el que operamos. En este caso nos apoyaremos en la propiedad Navigator.appName

  1. function anularBotonDerecho(e) {
  2.  
  3.  
  4. if (navigator.appName == 'Netscape'
  5. && (e.which == 3 || e.which == 2)){
  6. alert(sMensaje);
  7. return false;
  8. } else if (navigator.appName == 'Microsoft Internet Explorer'
  9. && (event.button == 2)) {
  10. alert(sMensaje);
  11. }
  12. }

Vídeos sobre Javascript


8 comentarios en “Deshabilitar el botón derecho”

Víctor Cuervo

Kenrryl

Estas opciones solo te funcionan para personas que no tienen conocimientos de diseño o programacion, pero hasta hay software que te permiten descargar web site completas.

Víctor Cuervo

val

la verdad no entiendo una mir.. no se como hacerlo no encuenteo en panel de control diseño busco y nada!!!

Víctor Cuervo

Leonardo

@Jesus, me juego lo que quieras a que estás usando en tus páginas contenidos de otros autores sin pedirles su permiso. ¿O es que has fabricado tú mismo cada imágen, cada hoja CSS, cada archivo javascript a partir de la nada, sin basarte en ninguna otra página web?

Víctor Cuervo

Jesus

Exacto para eso sirven esas artimañas para hacer perder el tiempo a los “ladrones”…. tu lo has dicho, y es por ese el motivo por lo que utilizo todo ese tipo de artimañas en mi web, y si encuentro una nueva artimaña la incluyo y la implemento en mi web. Solo para hacer perder el tiempo a los ladrones, chupopteros, aprovechados y demás gentuza que copian y roban del contenido ajeno.

Saludos

Víctor Cuervo

Carlos

Hola, Jaume.

Desde esa perspectiva me queda mucho más claro el “objetivo” de intentar impedir ciertas acciones. Yo también he sufrido los absurdos (y cambiantes) deseos de los clientes.

A veces me gustaría que supieran lo fácil que es saltarse esas barreras. Así no pedirían tantas tonterías, que al final no sirven más que para perder el tiempo.

Un saludo.

Víctor Cuervo

Jaume Dr. T

De acuerdo contigo, Carlos. Con un simple “impr pant”, puedo guardarme una foto superprotegida. Es decir, hecha la ley, hecha la trampa.

Pero a veces te ves “forzado” a recurrir a esas artimañas. En mi caso ha sido por petición expresa de un cliente, que estaba horrorizado ante la posibilidad de que se pudiesen descargar imágenes de su sitio. Pues nada, un par de lineas de javascript, y el hombre se ha quedado la mar de tranquilo.

Y… es que como son los clientes, eh?

Víctor Cuervo

Carlos

Todas estas zancadillas para impedir mostrar el código fuente no sirven de nada: siempre hay formas alternativas de hacer las cosas. (pulsando CTRL+U en Firefox, a través del menú Ver -> Código fuente, etc.). En última instancia, si mi navegador “puede” acceder al HTML, yo también “puedo”.

Hay otros métodos como ofuscadores de código, pero tambien tienen su contrapartida en los formateadores automáticos para recuperar legibilidad.

La pregunta es ¿qué se gana entorpeciendo el acceso a los recursos? (como por ejemplo, ver el código fuente o guardar una imagen de la página).

A mí siempre me han molestado sobremanera los sitios que usan estas burdas artimañas. El resultado es que, después de obtener lo que yo quería, no vuelvo nunca más a ese sitio.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*