Foros del Web » Programando para Internet » Javascript »

menu que me funciona en Ie6, en ie7, menos en Ie8

Estas en el tema de menu que me funciona en Ie6, en ie7, menos en Ie8 en el foro de Javascript en Foros del Web. Buenas compañeros, tengo un menú desplegable que me funciona perfectamente en otras versiones y otros navegadores. Me instalé el Ie8 y me ha dejado funcionar ...
  #1 (permalink)  
Antiguo 23/03/2009, 10:53
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
menu que me funciona en Ie6, en ie7, menos en Ie8

Buenas compañeros, tengo un menú desplegable que me funciona perfectamente en otras versiones y otros navegadores. Me instalé el Ie8 y me ha dejado funcionar y dice que el error está en una linea que me dice que es nulo o no es un objeto. Os pongo el codigo y os indico en un comentario la linea que es: (i<result.length) he intentado depurarlo pero no lo consigo, tampoco tengo mucha experiencia con javascript. Tambien he probado a activar el modo de compatibilidad que trae, pero no hace nada.

Espero que alguien me pueda hechar una mano porfavor!!

Código HTML:
<script>

var result;

function obtenerid(dentrodeque)
{
	frase=document.getElementById(dentrodeque).innerHTML;
	result=new Array();
	result=frase.match(/\b\s+id=[^>\s]+\b/g);
	for(i=0;[I]i<result.length[/I];i++){                                //en esta linea
		result[i]=result[i].split('"').join('');
		result[i]=result[i].split('id=').join('');
		result[i]=result[i].split(' ').join('');
	}
}

function mostrar(que)
{
	for(i=0;[I]i<result.length[/I];i++) // en esta linea
	{
		if(que==result[i])
		{
			if(document.getElementById(que).style.display=='none')
			{
				document.getElementById(que).style.display='block';
			}else{
				document.getElementById(que).style.display='none';
			}
		}else{
			eval("document.getElementById('"+result[i]+"').style.display='none'");
		}
	}
}


<body  onLoad="obtenerid('contenedor_menu')">

<div id="contenedor_menu" style="width:189px; margin-left:5px; overflow:auto; height:408px;">

<div class="principal" onClick="mostrar('82')">
	<a href="#"><img src="/wga/wga_fuentes/wga_f_estaticos/wga_f_menu/img/icon2_o.gif" width="21" height="15" border="0" align="absmiddle"> Componentes	</a>
</div><!-- PADRE -->
	<div id="82" style="display:none;"><!-- Contenedora -->
		<div class="secundario"><a href="/wga/wga_fuentes/wga_f_incidencias/wga_f_inci_iu3032.php?id_menu=82"><img src="/wga/wga_fuentes/wga_f_estaticos/wga_f_menu/img/iconarrs.gif" border="0" align="absmiddle"> Alta	</a></div>
				<!-- HIJA -->
		<div class="secundario"><a href="/wga/wga_fuentes/wga_f_incidencias/wga_f_inci_iu3033.php?id_menu=82"><img src="/wga/wga_fuentes/wga_f_estaticos/wga_f_menu/img/iconarrs.gif" border="0" align="absmiddle"> Consulta</a>
		</div>
				<!-- HIJA -->
	</div>
</div>
</body>

Como podría depurarlo? muchas gracias de antemano!!

Última edición por susaninhax; 23/03/2009 a las 11:02
  #2 (permalink)  
Antiguo 23/03/2009, 10:56
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: menu que me funciona en Ie6, en ie7, menos en Ie8

Te falta el elemento con id= contenedor_menu
  #3 (permalink)  
Antiguo 23/03/2009, 11:03
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
Respuesta: menu que me funciona en Ie6, en ie7, menos en Ie8

cierto cierto, se me había olvidado ponerlo, acabo de editar el post con el codigo y he añadido la capa que me faltaba. Por mas que lo miro no consigo entender por qué me da ese error con el Ie8
  #4 (permalink)  
Antiguo 23/03/2009, 11:08
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: menu que me funciona en Ie6, en ie7, menos en Ie8

Aquí hay algo demás:
Código javascript:
Ver original
  1. for(i=0;[i]i<result.length[/i];i++){
(la i entre corchetes antes de i<...)
  #5 (permalink)  
Antiguo 25/03/2009, 03:16
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
Pregunta Respuesta: menu que me funciona en Ie6, en ie7, menos en Ie8

vaya, eso lo usé para ponerlo en cursiva, pero se vé que no funciona, quería subrayarlo aposta para mostrar la linea en que me da el error en explorer 8:

pongo el codigo otra vez corregido
Código HTML:
<script>

var result;

function obtenerid(dentrodeque)
{
	frase=document.getElementById(dentrodeque).innerHTML;
	result=new Array();
	result=frase.match(/\b\s+id=[^>\s]+\b/g);
	for(i=0;i<result.length;i++){                                //en esta linea
		result[i]=result[i].split('"').join('');
		result[i]=result[i].split('id=').join('');
		result[i]=result[i].split(' ').join('');
	}
}

function mostrar(que)
{
	for(i=0;i<result.length;i++) // en esta linea
	{
		if(que==result[i])
		{
			if(document.getElementById(que).style.display=='none')
			{
				document.getElementById(que).style.display='block';
			}else{
				document.getElementById(que).style.display='none';
			}
		}else{
			eval("document.getElementById('"+result[i]+"').style.display='none'");
		}
	}
}


<body  onLoad="obtenerid('contenedor_menu')">

<div id="contenedor_menu" style="width:189px; margin-left:5px; overflow:auto; height:408px;">

<div class="principal" onClick="mostrar('82')">
	<a href="#"><img src="/wga/wga_fuentes/wga_f_estaticos/wga_f_menu/img/icon2_o.gif" width="21" height="15" border="0" align="absmiddle"> Componentes	</a>
</div><!-- PADRE -->
	<div id="82" style="display:none;"><!-- Contenedora -->
		<div class="secundario"><a href="/wga/wga_fuentes/wga_f_incidencias/wga_f_inci_iu3032.php?id_menu=82"><img src="/wga/wga_fuentes/wga_f_estaticos/wga_f_menu/img/iconarrs.gif" border="0" align="absmiddle"> Alta	</a></div>
				<!-- HIJA -->
		<div class="secundario"><a href="/wga/wga_fuentes/wga_f_incidencias/wga_f_inci_iu3033.php?id_menu=82"><img src="/wga/wga_fuentes/wga_f_estaticos/wga_f_menu/img/iconarrs.gif" border="0" align="absmiddle"> Consulta</a>
		</div>
				<!-- HIJA -->
	</div>
</div>
</body> 
Muchas gracias por vuestra ayuda de veras! no tengo ni idea de que hacer con esto.
  #6 (permalink)  
Antiguo 26/03/2009, 07:56
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: menu que me funciona en Ie6, en ie7, menos en Ie8

Reemplazando esto:
Código:
result=frase.match(/\b\s+id=[^>\s]+\b/g);
Por esto:
Código:
result=frase.match(/\bid=[^>\s]+\b/g);
No debería darte más problemas en explorer 8. Probalo y comentanos
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 12:17.