Regístrate para
recibir el boletín de
e-Contento.com. Ya somos 4312 suscriptores. [+]

Listado de Artículos  
 Control del botón derecho del ratón en el Explorer 5.
El objetivo de este artículo es capturar en Internet Explorer 5 los eventos producidos por el botón derecho del ratón, y hacer menús contextuales o menús flotantes que respondan a dicho evento.
Añadir a Gennio Añadir a del.icio.us Añadir a Digg Añadir a Meneame Añadir a Technorati Suscribir a Bloglines Suscribir a Netvibes Suscribir a Google Suscribir a Windows Live Suscribir a Mi Yahoo! Sindicación RSS. Feed
  1. Introducción
  2. Ocultar el menú
  3. Mostrar un mensaje
  4. Mostrar un Menú contextual
  5. Menú Final
Introducción
Muchas veces he querido abrir otra página web o simplemente ver su código y he hecho click con el botón secundario del ratón. Cuál ha sido mi sorpresa al descubrir que no sucedía nada, o que el creador del web se permitía mostrarme una ventanita con alguna broma derivada del uso del botón derecho del ratón. Esas son las cosas que vamos a mostrar a lo largo del siguiente artículo...


Ocultar el menú
Esto es muy fácil. Basta con que el controlador de evento onContextMenu, llame a una función que no haga nada. Así, pondremos lo siguiente en la etiqueta body.
<body onContextMenu="return false">
Podemos ver un ejemplo y su código fuente.


Mostrar un mensaje
Con la misma facilidad que en el ejemplo anterior, podemos mostrar un mensaje indicando que el botón derecho está deshabilitado.
<body onContextMenu="alert('El botón derecho está deshabilitado')">
Podemos ver un ejemplo y su código fuente.


Mostrar un Menú contextual
El avispado lector, se habrá dado cuenta que cuando se produzca este evento puede llamar a cualquier función. Eso sí, sin que se nos olvide el return false, que hace que la función devuelva algo y así evitamos que se despliegue el otro menú.

Podemos incluso, desplegar nuestro propio menú contextual. Lo que hacemos, es que cuando se pulse el botón derecho, se muestra una capa con nuestro menú. La función mostrarMenu, se encarga de hacer visible la capa además de controlar la posición donde se muestra.

<!--[if IE 5]>
<div id="ie5menu" class="menu">
  <div class="menuitems">www.programacion.net</div>
  <div class="menuitems">www.webestilo.com</div>
...
</div>
<![endif]-->

Lo que está escrito entre los comentarios, es interpretado únicamente por el Internet Explorer 5 o superior. El resto de los navegadores, lo consideran como simples comentarios.

Con el siguiente script, nos encargamos de mostrar el menú cuando se haga un click con el botón derecho y de ocultar cuando se haga click con el izquierdo.

<script language="JavaScript1.2">
if (document.all && window.print){
document.oncontextmenu=mostrarMenu;
document.body.onclick=ocultarMenu;
}
</script>

siendo mostrarMenu y ocultarMenu, las siguientes funciones:

function mostrarMenu(){
  // colocamos la capa donde hemos hecho click con el ratón
  menuDiv.style.left = document.body.scrollLeft + event.clientX;
  menuDiv.style.top = document.body.scrollTop + event.clientY;

  // hacemos la capa visible
  menuDiv.style.visibility = "visible";
  return false;
}
function ocultarMenu(){
  // ocultamos la capa
  menuDiv.style.visibility="hidden";
}

Podemos ver un ejemplo y su código fuente.


Menú Final
Ya tenemos un menú contextual simple. Ahora podemos refinarlo un poco y añadirle algunas funcionalidades. Lo primero es hacer un control sobre dónde se va a mostrar el menú y comprobar que no se sale del límite de la pantalla.

Otras funcionalidades añadidas son resaltar la opción del menú (encender) y desresaltar (apagar).

function encender(){
  if (event.srcElement.className=="menuitems"){
    event.srcElement.style.backgroundColor="highlight";
    event.srcElement.style.color="white";
  }
}

function apagar(){
  if (event.srcElement.className=="menuitems"){
    event.srcElement.style.backgroundColor="";
    event.srcElement.style.color="black";
  }
}

Podemos ver un ejemplo y su código fuente.




volver
 RECOMENDAMOS
Madroñosfera
fotoMadrid
Sokoban en JavaScript
Directorio e-Contento

 MIS FOTOS...

 CITA
La violencia no es sino una expresión del miedo A. Graf

El tiempo es el más precioso de los bienes; su pérdida, la mayor de las prodigalidades. B. Franklin



Mi ICQ es 44428945 contento@mixmail.com Visita mi otra web: www.fotoMadrid.com - fotografías, wallpapers y postales de Madrid