Foros del Web » Programando para Internet » Javascript »

Problema con codigo JScript

Estas en el tema de Problema con codigo JScript en el foro de Javascript en Foros del Web. hola mundo, tengo un pequeño inconveniente y no se como resolverlo, bueno tengo el siguiente codigo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> ...
  #1 (permalink)  
Antiguo 15/08/2007, 09:35
ren
 
Fecha de Ingreso: octubre-2005
Mensajes: 29
Antigüedad: 18 años, 6 meses
Puntos: 0
Problema con codigo JScript

hola mundo, tengo un pequeño inconveniente y no se como resolverlo,
bueno tengo el siguiente codigo

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script language="JavaScript" type="text/javascript">
<!--
function mVista(objeto)
{

//alert(objeto.style.visibility);
//columna=document.getElementByID("Fila1");
if (objeto.style.display == "block")
{objeto.style.display = "none";}
else
{objeto.style.display = "block";}

}
//-->
</script>

</head>
<body>

<table summary="" align="center" width="140" border="1" bgcolor="#ffffff">
<tr>
<td bgcolor="#c0c0c0" align="center">
<a href='javascript:mVista(document.getElementById("F ila1"));'>Principal</a>
</td>
</tr>
<tr id="Fila1" style="display:block">
<td>
<div>Opcion1</div>
<div>Opcion2</div>
<div>Opcion3</div>
</td>
</tr>
</table>

<table summary="" align="center" border="1">
<tr>
<td>Hola mundo</td>
</tr>
</table>
</body>
</html>



Bueno este codigo(simple por cierto) me funciona barbaro en IExplorer pero en Mozilla Firefox no me funciona como debria ser, ¿eso a que se debe?
Agradesco desde ya su ayuda a toda la comunidad
  #2 (permalink)  
Antiguo 15/08/2007, 09:47
Avatar de johnj  
Fecha de Ingreso: marzo-2007
Mensajes: 65
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Problema con codigo JScript

Saludos Amigo,


Veo que cada vez que oculta y muestra la tabla se debe se genera scroll. Para solucionar esto cambia el valor de todos los display que estan en "block" tanto javascript como en el HTML por "" solamamente.
  #3 (permalink)  
Antiguo 15/08/2007, 10:09
Avatar de demiurgo_daemon  
Fecha de Ingreso: diciembre-2006
Ubicación: Querétaro
Mensajes: 184
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Problema con codigo JScript

Hola,

probé tu código y, según yo, te refieres a que cada vez que llamas la función se va haciendo más grande la tabla. La cosa es que el valor correcto para display en <tr> es table-row; sin embargo, Explorer como siempre no la soporta . Puedes hacer pruebas de navegador para usar un valor o el otro, pero la gente que hizo cosas como Prototype o Mootools ya tuvo que lidiar con todo eso y tiene soluciones completas. Te recomiendo usar una de esas librerías.

saludos
  #4 (permalink)  
Antiguo 15/08/2007, 10:10
Avatar de demiurgo_daemon  
Fecha de Ingreso: diciembre-2006
Ubicación: Querétaro
Mensajes: 184
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Problema con codigo JScript

la solución de johnj funciona perfectamente!!
  #5 (permalink)  
Antiguo 15/08/2007, 17:21
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Problema con codigo JScript

Lo he podido solucionar así, lo que pasa es que hay que hacer complejidades con el try y el catch, que siempre es preferible a utilizar la detección del navegador en sí, nos asegura más compatibilidad. Me he basado en la propiedad table-row, como bien ha dicho demiurgo_daemon. La opción de dejarlo en "" (por defecto) no la he probado, pero debería funcionar igualmente.

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
<
title>Untitled</title>
<
script  type="text/javascript">
<!--
function 
mVista(objeto){
    var 
elDisplay objeto.style.display;
    if ( 
elDisplay== "none" ) {
        try {
            
objeto.style.display "table-row";
        }
        catch(
elError) {            // elError es el propio navegador IE...
            
objeto.style.display "block";
        }
    }
    else {
        
objeto.style.display "none";
    }
    return 
false;
}
//-->
</script>

</head>
<body>

<table summary="" align="center" width="140" border="1" bgcolor="#ffffff">
    <tr>
        <td bgcolor="#c0c0c0" align="center">
            <a href="#" onclick='mVista(document.getElementById("Fila1"));'>Principal</a>
        </td>
    </tr>
    <tr id="Fila1" style="display:table-row;">
        <td>
            <div>Opcion1</div>
            <div>Opcion2</div>
            <div>Opcion3</div>
        </td>
    </tr>
</table>

<table summary="" align="center" border="1">
    <tr>
        <td>Hola mundo</td>
    </tr>
</table>


</body>
</html> 


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 22:04.