Como mostrar un menu con el boton derecho del ratón

KERJO
23 de Agosto del 2005

Hola de nuevo.

Estoy intentando hacer un grid con mysql + php. El caso es que ya casi me ha quedado bien, pero necesito capturar el evento del boton derecho del ratón, para que cuando un usuario pulse sobre una columna me abra un menu para poder filtrar, ordenar ... He visto como capturar este evento en algunos links, pero nada de como poder mostrar el menu.

Espero que alguno de vosotros pueda darme alguna pista por donde investigar, algún enlace, etc...

Gracias.-


KERJO
23 de Agosto del 2005
Aclaración: Creo que para mostar el menu, debería de hacerlo con javascripts, teneis alguna idea?


sal00m
23 de Agosto del 2005
Pues una idea....

Cuando el usuario presione el boton derecho del raton (esto lo puedes capturar con javascript) mostrar una capa con N links que hagan lo que tu quieras jejeje... eso ya como tu veas ;)

WebMasterFrank
23 de Agosto del 2005
<STYLE>
<!--
.skin0{
position:absolute;
width:175px;
border:2px solid white;
background-color:#99CCFF;
font-family:Verdana;
font-size: 10px;
line-height:15px;
cursor:default;
visibility:hidden;
}
.menuitems{
padding-left:10px;
padding-right:10px;
}
--> </style>

<script language="JavaScript1.2">
var menuskin=0
var display_url=0
function showmenuie5(){
var rightedge=document.body.clientWidth-event.clientX
var bottomedge=document.body.clientHeight-event.clientY
if (rightedge<ie5menu.offsetWidth)
ie5menu.style.left=document.body.scrollLeft+event.clientX-ie5menu.offsetWidth
else
ie5menu.style.left=document.body.scrollLeft+event.clientX
if (bottomedge<ie5menu.offsetHeight)
ie5menu.style.top=document.body.scrollTop+event.clientY-ie5menu.offsetHeight
else
ie5menu.style.top=document.body.scrollTop+event.clientY
ie5menu.style.visibility="visible"
return false
}
function hidemenuie5(){
ie5menu.style.visibility="hidden"
}
function highlightie5(){
if (event.srcElement.className=="menuitems"){
event.srcElement.style.backgroundColor="highlight"
event.srcElement.style.color="white"
if (display_url==1)
window.status=event.srcElement.url
}
}
function lowlightie5(){
if (event.srcElement.className=="menuitems"){
event.srcElement.style.backgroundColor=""
event.srcElement.style.color="black"
window.status=''
}
}
function jumptoie5(){
if (event.srcElement.className=="menuitems"){
if (event.srcElement.getAttribute("target")!=null)
window.open(event.srcElement.url,event.srcElement.getAttribute("target"))
else
window.location=event.srcElement.url
}
}
</script>
<!--[if IE]>
<div id="ie5menu" class="skin0" onMouseover="highlightie5()" onMouseout="lowlightie5()" onClick="jumptoie5()">
<div class="menuitems" url="http://www.webrecursos.com" target="_self">- Recursos Gratis</div>
<hr>
<div class="menuitems" url="http://www.webrecursos.com/pages/publi.htm" target="_self">- Publicidad</div>
<div class="menuitems" url="http://www.webrecursos.com/pages/promo.htm" target="_self">- Promocion</div>
<div class="menuitems" url="http://www.webrecursos.com/pages/serweb.htm" target="_self">- Servicios Web</div>
<div class="menuitems" url="http://www.webrecursos.com/pages/servis.htm" target="_self">- Servicios Visitantes</div>
<div class="menuitems" url="http://www.webrecursos.com/pages/javascripts" target="_self">- Javascript</div>
</div>
<![endif]-->
<script language="JavaScript1.2">
if (document.all&&window.print){
if (menuskin==0)
ie5menu.className="skin0"
else
ie5menu.className="skin1"
document.oncontextmenu=showmenuie5
document.body.onclick=hidemenuie5
}
</script>



////////////////////////////////

Cuando alguien pregunte algo a ver si se contesta mejor o se le da a la persona lo que necesita esto va por el de antes , eso y decir nada es toda una , aqui tienes amigo el codigo saldra un submenu al pulsar con el derecho del raton
Saludos buena suerte , WebMasterFrank
//////////////////////77

KERJO
23 de Agosto del 2005

Bueno, he probado el código, y va fenomeno bajo explorer. El caso es que yo trabajo en linux, y necesito adaptarlo a firefox. Pero me voy a poner manos a la obra para adaptarlo ahora mismo.

He observado que el menu está "asociado" a body. ¿Se puede asociar a un elemento de una tabla también? Ya digo que el menu me servirá para implementar una rejilla de datos, es decir, algo parecido a cuando le das con el boton derecho a un dato de una tabla en ms access, para poder hacer filtros por selección, ordenar ...

En fin, tengo que trabajarme todo esto un poco. De nuevo, muchas gracias.

Jose Antonio Kerjo.-

WebMasterFrank
23 de Agosto del 2005
Siquieres hacer eso que dices puedes asociar la ejecucion del script a una tabla en particular lo que ocurre que deberas de cambiar el script para cada funcionalidad es decir o bien insertas una llamada con php para que a cada consulta el script coja el nombre de la consulta teniendo el mismo javascript o por otro lado insertas tantos javascripts con este codigo como sentencias quieras llamar yo me inclinaria por lo primero , quizas un poco mas complejo , pero totalmente rentable , saludos , y me alegro de haberte ayduado , saludos , suerte , WebMasterFrank

KERJO
23 de Agosto del 2005
Ante todo muchas gracias a los dos por responder. Uno me ha dado una orientación por donde investigar, y el otro me ha dado la solución. Creo que son de agradecer ambos caminos. Tengo que investigar esto de las capas. No las he usado nunca, y creo que va siendo hora.

Lo dicho. Gracias y espero poder devolver el favor al Foro y a ambos.

Jose Antonio Kerjo.-