Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Inhabilitar el menú contextual del navegador con Javascript


Un script en Javascript para evitar que funcione el menú contextual del navegador, que sale al pulsar con el botón derecho del ratón sobre la página. De modo que no puedan ver el código fuente ni acceder a otras opciones similares.


18/1/06 - En este artículo vamos a mostrar un método para inhabilitar el menú contextual del navegador, que aparece pulsando con el botón derecho en cualquier área de la página. Así podemos evitar que el usuario tenga acceso a algunas de las opciones del navegador, como ver el código fuente.

Lo primero que hay que destacar es que este ejemplo no protege para nada el código de las páginas web que estamos publicando. Simplemente pone algunas trabas para ver cómo hemos hecho la página, pero cualquier usuario avispado podrá acceder al código de la página si realmente se lo propone.

Para empezar, desde la barra de menús del navegador, en "ver - código fuente", se puede acceder también al código fuente de las páginas. Así que si deseamos que no vean nuestro código, tendremos que mostrar la página en una nueva ventana del navegador, que debemos abrir mediante Javascript para que no incluya las barras de menús.

Referencia: en un manual de DesarrolloWeb.com tenemos todo sobre control de ventanas secundarias. Allí podemos aprender a abrir ventanas como queramos.

Si conseguimos evitar mostrar la barra de menús y el menú contextual, todavía un usuario podría deshabilitar Javascript para intentar ver el menú contextual sin que se lo impida la página.

Pero debemos saber que, cuando se envía una página a un visitante, el archivo HTML se guarda en el disco duro local de ese usuario, por lo que en último caso, la persona interesada simplemente tiene que acceder a sus archivos temporales de Internet para localizar la página que tiene el código que desea visualizar. Como el archivo está físicamente en su ordenador, podrá hacer lo que desee con él: abrirlo, modificarlo, guardarlo con otro nombre, etc. Así que nuestros códigos nunca estarán totalmente seguros.

Nota: La mejor solución para proteger un código es escribirlo en el lado del servidor, con lenguajes como ASP o PHP. Al estar en el lado del servidor, los scripts se ejecutarán en el servidor y el visitante sólo recibirá el código generado de esa ejecución, no el propio código ASP o PHP.

Por tanto, no se puede hacer nada definitivo para ocultar un código que se ejecuta en el cliente, así que esta solución propuesta es sólo un detalle que puede entorpecer la captación de un código, pero no sirve para asegurarlo definitivamente.

Pues dicho esto, el código que vamos a proponer es mucho más sencillo de lo que se podría suponer. Simplemente utilizaremos un evento de Javascript que se llama "oncontextmenu" y depende de "document". Asignaremos una función a este evento, que se ejecutará en el momento que el usuario haga clic en el botón derecho para visualizar el menú contextual.

La función que vamos a asignar a este evento es la siguiente:

function inhabilitar(){
    alert ("Esta función está inhabilitada.\n\nPerdonen las molestias.")
    return false
}

La función muestra un mensaje de advertencia, pero fijémonos en el return false: es necesario para que no se llegue a mostrar el menú contextual, porque si no la ponemos, se mostraría el mensaje de alerta, pero a continuación se mostraría también el menú contextual, con lo que no serviría de nada el script.

Para asignar esta función al evento oncontextmenu, realizamos este código:

document.oncontextmenu=inhabilitar

Tan simple como eso. El script completo, que colocaríamos entre <head> y </head> quedaría así:

<script language=JavaScript>
<!--

function inhabilitar(){
    alert ("Esta función está inhabilitada.\n\nPerdonen las molestias.")
    return false
}

document.oncontextmenu=inhabilitar

// -->
</script>

Podemos ver el ejemplo en marcha en una página aparte.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 5 comentarios (Añadir)
+ 9 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de Javascript

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en Javascript


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 5 comentarios revisados

 Comentario de Miguel
03/2/06 
Yo solo quisiera bloquear la opcion "Ver codigo" del menu contextual al presionar el boton derecho del mouse. Por favor, alguien que sepa?

 Comentario de Sergio
03/2/06 
Hay muchas formas de hacerlo, es algo para mi forma de ver las cosas inutil y poco solidario para el que quiere aprender, es obvio que para ver una web hay que bajarse el codigo fuente sino no se veria y tambien para se localizado por buscadores.

Esta bien saberlo, pero para mi las webs que intentan camuflar su codigo fuente son pateticas.

Hasta los swf se abren con programas, es ridiculo proteger todo lo que entra en la maquina del cliente.

Un saludo.

 Comentario de Iván
03/2/06 
Sinceramente, este tipo de "protección" para salvaguardar el código procesado de la página sirve únicamente para novatos o aficionados. Una página que yo estoy viendo en mi casa, la tengo localmente descargada en mi casa, y por lo tanto, puedo acceder a su codificación devuleta (ojo, la respuesta de la petición, no al código fuente real).

 Comentario de andres
07/2/06 
Esta muy bien el articulo, pero eso solo deshabilita el boton derecho del raton pero si le das arriba en el navegador donde pone (ARCHIVO EDICION VER FAVORITOS HERRAMIENTAS AYUDA)a 'VER' y luego a codigo fuente , te sale el documento html en pantalla.

 Comentario de jhony-net jonathan
21/12/06 
soy diseñador web en flash y en html la mejor manera de protejer un codigo de fuente es escrivirlo en el flash hacerlo grande y ponerle todo a tu gusto como lo ago yo pero la mayoria de veses lo ago en html miren mi web esta casi toda en flash y abajo dice desing by jhony-net bueno espero que les sirva este comentario mio

saludos http://jhony-net.tk

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 9 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de Javascript
Categorías
+Scripts en Javascript

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia