Foros del Web » Programando para Internet » Javascript »

un pequeño problema con este java[Resuelto]

Estas en el tema de un pequeño problema con este java[Resuelto] en el foro de Javascript en Foros del Web. me han pasado este java y mas o menos ya se como va. inicialmente solo tenia dos enlaces con una caja para cada uno. al ...
  #1 (permalink)  
Antiguo 13/03/2003, 04:57
el karrikiri
Invitado
 
Mensajes: n/a
Puntos:
Pregunta un pequeño problema con este java[Resuelto]

me han pasado este java y mas o menos ya se como va. inicialmente solo tenia dos enlaces con una caja para cada uno.

al meterle un enlace nuevo con su caja corespondiente al pricipio me sale "undefined" y no se como quitarlo de hay.

alguien me puede ayudar con este problema:

Aqui teneis el codigo:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style>
<!--

.menuskin{
position:absolute;
width:165px;
background-color:menu;
border:2px solid black;
font:normal 12px Verdana;
line-height:18px;
z-index:100;
visibility:hidden;
}

.menuskin a{
text-decoration:none;
color:black;
padding-left:10px;
padding-right:10px;
}

#mouseoverstyle{
background-color:highlight;
}

#mouseoverstyle a{
color:white;
}
-->
</style>

<script language="JavaScript1.2">

//Pop-it menu- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var linkset=new Array()
//SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT

linkset[0]='<div class="menuitems"><a href="http://www.precios10.com">Ordenadores</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://www.cambiabanners.com">Intercambio de banners</a></div>'
linkset[0]+='<div class="menuitems"><a href="http://www.iaupa.com">Recursos web</a></div>'

linkset[1]='<div class="menuitems"><a href="http://msnbc.com">MSNBC</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://cnn.com">CNN</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://abcnews.com">ABC News</a></div>'
linkset[1]+='<div class="menuitems"><a href="http://www.washingtonpost.com">Washington Post</a></div>'

linkset[2]+='<div class="menuitems"><a href="http://abcnews.com">Como Funciona</a></div>'
linkset[2]+='<div class="menuitems"><a href="http://www.washingtonpost.com">Otros</a></div>'

////No need to edit beyond here

var ie4=document.all&&navigator.userAgent.indexOf("Ope ra")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers

function showmenu(e,which){

if (!document.all&&!document.getElementById&&!documen t.layers)
return

clearhidemenu()

menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj

if (ie4||ns6)
menuobj.innerHTML=which
else{
menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
menuobj.document.close()
}

menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y

//Find out how close the mouse is to the corner of the window
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<menuobj.contentwidth)
//move the horizontal position of the menu to the left by it's width
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
//position the horizontal position of the menu where the mouse was clicked
menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX : ns6? window.pageXOffset+eventX : eventX

//same concept with the vertical position
if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.visibility="visible"
return false
}

function contains_ns6(a, b) {
//Determines if 1 element in contained in another- by Brainjar.com
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function hidemenu(){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}

function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}

function delayhidemenu(){
if (ie4||ns6||ns4)
delayhide=setTimeout("hidemenu()",500)
}

function clearhidemenu(){

if (window.delayhide)
clearTimeout(delayhide)
}

function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}

if (ie4||ns6)
document.onclick=hidemenu

</script>
<title>prueba2</title></head>

<body>
<div id="popmenu" class="menuskin" onMouseover="clearhidemenu();highlightmenu(event,' on')" onMouseout="highlightmenu(event,'off');dynamichide (event)">
</div>

<p><a href="#" onMouseover="showmenu(event,linkset[0])" onMouseout="delayhidemenu()">Enlaces
1</a><br>
<a href="#" onMouseover="showmenu(event,linkset[1])" onMouseout="delayhidemenu()">Enlaces
2<br>
</a><a href="#" onMouseover="showmenu(event,linkset[2])" onMouseout="delayhidemenu()">Enlaces
3</a> </p>
</body>
</html>

Última edición por KarlanKas; 13/03/2003 a las 06:33
  #2 (permalink)  
Antiguo 13/03/2003, 06:15
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61

Hola el karrikiri!!

Qué tal por la universidad??

La razón de que falle es es por el + que pones delante del primer linkset[2]. Con eso le estás diciendo que añada a la variable linkset[2] lo siguiente, pero como no existe dicha variable le añade lo siguiente a undefined, es decir a nada. Para arreglarlo quítale al primer linkset[2] el + de delante del = para que quede así:

linkset[2]='<div class="menuitems"><a href="http://abcnews.com">Como Funciona</a></div>'
linkset[2]+='<div class="menuitems"><a href="http://www.washingtonpost.com">Otros</a></div>'

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 13/03/2003, 06:31
el karrikiri
Invitado
 
Mensajes: n/a
Puntos:
gracias

Mucas gracias por la ayuda la verdad que ni me habia fijado en el + de las pelotas y mira que he mirado el codigo varias veces. muchas gracias.
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 10:23.