Ver Mensaje Individual
  #10 (permalink)  
Antiguo 18/07/2011, 04:43
Avatar de atapuerkasman
atapuerkasman
 
Fecha de Ingreso: febrero-2011
Mensajes: 76
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: mostar menu al hacer click

Me sigo respondiendo yo solo

Ya va un poquito mejor, eran que chrome utiliza otras llamadas para obtener los anchos y los altos, tanto del cliente como del cursor y demás. Lo he corregido pero en Chrome no me muestra el menu al pulsar el botón derecho. ahí os va el código

yo sigo al tema :(


Código:
<script type="text/javascript">
function detectarBoton(event){
	
	//Clausulas para detectar que boton se esta pulsando en que navegador
	
	if(navigator.appName=='Netscape'){
		//boton derecho pulsado en navegador Netscape
		
		if(event.button==2){
			
			//hay alguna incompativilidad en la funcion sombra
			sombra();
			alert("pulsado boton derecho");
			
		}else if(event.button==0){
			
			visibilidad();
		}
	
	}else   if (navigator.appName.indexOf('Microsoft')!=-1){
		//boton derecho pulsado en navegador Explorer
		if(event.button==2){
			sombra();
			
		}else if(event.button==1){
			visibilidad();
		}
	}
	
	
}
</script>
  
  <script type="text/javascript">
  
  	//posicion absoluta del menu=0, menu con el boton derecho=1
  	var menutipo=1;
  	
  	//mostramos el menu
  function sombra(e){
  		
  		if(document.getElementById){
  			mimenu=document.getElementById("menudesplegable");
  		
  		}else if(document.all){
  			mimenu=document.all.menudesplegable;
  		}
  	
  	
  	if(!e){
  		var e=window.event;
  	}
  	
  	
	//tamaño de la ventana - posicion del puntero
  	if (navigator.appName=='Netscape'){
  		//tamaño de la ventana - posicion del puntero
  	  	var borde_derecho=window.innerWidth - document.body.clientWidth;
  	  	var borde_inferior=window.innerHeight - document.body.clientHeight;
  	 
  	  	//distancia del menu al puntero
  	  	
  	  	if(borde_derecho< mimenu.innerWidth){
  	 
  	  		mimenu.style.left=document.body.scrollLeft + document.body.clientWidth - menudesplegable.innerWidth + 'px';
  	  		mimenu.style.top= document.body.scrollTop + document.body.clientHeight - menudesplegable.innerHeight + 'px';
  	  		
  	  	}else{
  	
  	  		mimenu.style.left=document.body.scrollLeft+ document.body.clientWidth+ 'px';
  	  		mimenu.style.top= document.body.scrollTop + document.body.clientHeight + 'px';
  	  	}

   }else   if (navigator.appName.indexOf('Microsoft')!=-1){
	   
	   //tamaño de la ventana -posicion del puntero
	   var borde_derecho=document.body.offsetWidth - e.clientX;
	  	var borde_inferior=document.body.offsetHeight- e.clientY;

	  	//distancia del menu al puntero
	  	if(borde_derecho < mimenu.offsetWidth)  {
        mimenu.style.left =  document.body.scrollLeft + e.clientX - menudesplegable.offsetWidth + 'px';
  		mimenu.style.top = document.body.scrollTop + e.clientY- menudesplegable.offsetHeight+ 'px';
  	}
        else { 
           mimenu.style.left = document.body.scrollLeft + e.clientX + 'px';
           mimenu.style.top= document.body.scrollTop + e.clientY+ 'px';
     }
	  	
   }
  	
  	alert("posicion x: "+mimenu.style.left+"\nPosicion y: "+mimenu.style.top);
  	
  	
  	
  	       
     //alert("Distancia del menu al puntero: "+mimenu.style.left+"\n Distancia del menu horizontal: "+mimenu.style.top);
     
     mimenu.style.visibility='visible';
  	return false;
  }
  	
  	
  function visibilidad(){  
	  
	   if (document.getElementById) {  
	      mimenu = document.getElementById("menudesplegable")  
	   }else if (document.all) {  
	      mimenu = document.all.menudesplegable;  
	   }  
	  
	   mimenu.style.visibility = "hidden"  
	  
	}  
	 
	
  </script>