Foros del Web » Programando para Internet » Javascript »

Menu con clic derecho

Estas en el tema de Menu con clic derecho en el foro de Javascript en Foros del Web. Hola, Estoy haciendo un menu con clic derecho: Código HTML: <style> .skin{ cursor:default; font:menutext; position:absolute; text-align:left; font-family: Arial, Helvetica, sans-serif; font-size: 10pt; width:120px; background-color:#FFFFFF; border:2px ...
  #1 (permalink)  
Antiguo 03/10/2008, 11:27
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Menu con clic derecho

Hola,
Estoy haciendo un menu con clic derecho:
Código HTML:
<style>
.skin{
cursor:default;
font:menutext;
position:absolute;
text-align:left;
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
width:120px;
background-color:#FFFFFF;
border:2px outset #000000;
visibility:hidden;
border:2 outset buttonhighlight;
}
</style>
<script>
function $(e){
document.getElementById(e)
}
function seleccionar(obj){
	if(obj.nodeName.toLowerCase()=='textarea' || (obj.nodeName.toLowerCase()=='input' && obj.type=='text')){
		obj.select();
		return;
	}
	if (window.getSelection) { 
        var sel = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(obj);
        sel.removeAllRanges();
        sel.addRange(range);
    } 
	else if (document.selection) { 
    	document.selection.empty();
    	var range = document.body.createTextRange();
		range.moveToElementText(obj);
		range.select();
    }
}
function ver_menu_tcs(e){
var rightedge=ie5? document.body.clientWidth-event.clientX : window.innerWidth-e.clientX;
var bottomedge=ie5? document.body.clientHeight-event.clientY : window.innerHeight-e.clientY;

if (rightedge<menuobj.offsetWidth)
menuobj.style.left=ie5? document.body.scrollLeft+event.clientX-menuobj.offsetWidth : window.pageXOffset+e.clientX-menuobj.offsetWidth;
else
menuobj.style.left=ie5? document.body.scrollLeft+event.clientX : window.pageXOffset+e.clientX;

if (bottomedge<menuobj.offsetHeight)
menuobj.style.top=ie5? document.body.scrollTop+event.clientY-menuobj.offsetHeight : window.pageYOffset+e.clientY-menuobj.offsetHeight;
else
menuobj.style.top=ie5? document.body.scrollTop+event.clientY : window.pageYOffset+e.clientY;

menuobj.style.visibility="visible";
return false;
}

function ocultar_menu_s(){
menuobj.style.visibility="hidden";
}

function selec_item(e){
var firingobj=ie5? event.srcElement : e.target;
if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode; //up one node
firingobj.style.backgroundColor="highlight";
firingobj.style.color="white";
if (display_url==1)
window.status=event.srcElement.des;
}
}

function des_delect_item(e){
var firingobj=ie5? event.srcElement : e.target;
if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode; //up one node
firingobj.style.backgroundColor="";
firingobj.style.color="black";
window.status='';
}
}

function ir_direct_tc(e){
var firingobj=ie5? event.srcElement : e.target;
if (firingobj.className=="menuitems"||ns6&&firingobj.parentNode.className=="menuitems"){
if (ns6&&firingobj.parentNode.className=="menuitems") firingobj=firingobj.parentNode;
if (firingobj.getAttribute("target"))
window.open(firingobj.getAttribute("url"),firingobj.getAttribute("target"));
else
window.location=firingobj.getAttribute("url");
}
}
function ver_menu(e,m){
var display_url=m;
var ie5=document.all&&document.getElementById;
var ns6=document.getElementById&&!document.all;
if (ie5||ns6)
var menuobj=document.getElementById(e);
if (document.all && window.print) {
document.oncontextmenu = ver_menu_tcs(event);
}
}
if (document.all && window.print) {
document.body.onclick = ocultar_menu_s();
}
</script>
<div id="menu" class="skin" onMouseover="selec_item(event)" onMouseout="des_delect_item(event)" onClick="ir_direct_tc(event)" style="display:none;">
<div class="menuitems" url="javascript:seleccionar($('div1'));" des="Seleccionar div.">Seleccionar div </div>
</div>
<div id="div1" oncontextmenu='ver_menu("menu",1);return false;'>Este es un texto de prueba. Presiona clic derecho para desplegar el menu. </div> 
Pero no anda.
Gracias
Salu2
__________________
Half Music - www.halfmusic.com
  #2 (permalink)  
Antiguo 03/10/2008, 11:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: Menu con clic derecho

No te recomiendo que lo hagas, es una práctica mal vista por los visitantes, y lo más probable es que con eso los estés invitando a irse de tu página. De hecho, uso Firefox y deshabilito la opción de permitir que scripts reemplacen los menús contextuales.

P.S.: El código que tienes parece muy antiguo .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 03/10/2008, 12:58
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: Menu con clic derecho

Hola,
Gracias, pero los usuarios me pidieron esto.
El codigo fue el unico que e encontrado.
Si alguien tiene uno mas moderno, se lo agradeceria mucho si me lo dan.
Gracias
Salu2
__________________
Half Music - www.halfmusic.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:38.