Foros del Web » Programando para Internet » Javascript »

No me funciona javascript simple ni en opera ni en firefox

Estas en el tema de No me funciona javascript simple ni en opera ni en firefox en el foro de Javascript en Foros del Web. Hola!. Estoy usando un link para hacer aparecer y desaparecer una capa: <div id="header-form"><a onclick="visible('container')">B&uacute;squeda de Candidatos</a> Que ejecuta la siguiente función: function visible(nombreCapa){ if(document.getElementById(nombreCapa).style.displ ...
  #1 (permalink)  
Antiguo 21/08/2007, 03:21
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
No me funciona javascript simple ni en opera ni en firefox

Hola!. Estoy usando un link para hacer aparecer y desaparecer una capa:

<div id="header-form"><a onclick="visible('container')">B&uacute;squeda de Candidatos</a>

Que ejecuta la siguiente función:

function visible(nombreCapa){
if(document.getElementById(nombreCapa).style.displ ay == "none")
{
document.getElementById(nombreCapa).style.display = "inline";
}
else
document.getElementById(nombreCapa).style.display = "none";
}

Como puede verse es muy muy sencilla, así que no entiendo porque sólo me funciona en ie7. Alguna idea de porque puede ser?

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 21/08/2007, 03:26
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Re: No me funciona javascript simple ni en opera ni en firefox

Tienes que jugar con los CSS, ya que los valores hidden y visible de las capas no te los coge desde el script.

Si miras un poco mas abajo en el foro, en el Post "Acceso Acceso al elemento con Firefox" esta el mismo problema que tienes tu y como esta resuelto.

http://www.forosdelweb.com/f13/acceso-elemento-con-firefox-512865/

Si quieres ver un ejemplo de lo que hace mi codigo puedes verlo en http://ajax.lohacemosweb.net en la parte que pone Calendario y Estandares, dandole a la flechita. Si pruebas en varios navegadores veras como actua. Es una página de ejemplos que estoy haciendo.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #3 (permalink)  
Antiguo 21/08/2007, 04:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: No me funciona javascript simple ni en opera ni en firefox

Hola

Y el objeto que lleva el identificador container? ¿cual es su código?
  #4 (permalink)  
Antiguo 21/08/2007, 05:13
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: No me funciona javascript simple ni en opera ni en firefox

Cita:
Iniciado por bookmaster Ver Mensaje
Tienes que jugar con los CSS, ya que los valores hidden y visible de las capas no te los coge desde el script.

Si miras un poco mas abajo en el foro, en el Post "Acceso Acceso al elemento con Firefox" esta el mismo problema que tienes tu y como esta resuelto.

...

Si quieres ver un ejemplo de lo que hace mi codigo puedes verlo en http://ajax.lohacemosweb.net en la parte que pone Calendario y Estandares, dandole a la flechita. Si pruebas en varios navegadores veras como actua. Es una página de ejemplos que estoy haciendo.
Hola!. Pues he mirado el link que me pasas, pero yo no estoy usando name para declarar container, sino que uso id, así que no creo que sea por eso.

Cita:
Iniciado por tunait Ver Mensaje
Hola

Y el objeto que lleva el identificador container? ¿cual es su código?
Es un div que ocupa un formulario entero. El objetivo es poder esconder y mostrar el formulario (de búsqueda) cuando el usuario pulse un botón o un enlace.
  #5 (permalink)  
Antiguo 21/08/2007, 05:30
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Re: No me funciona javascript simple ni en opera ni en firefox

En mi Script no uso name, fijate bien, uso id, pero el className es por el firefox es su manera de llamar al CSS, por eso te decia que podias verlo en el ejemplo de la web.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #6 (permalink)  
Antiguo 21/08/2007, 05:54
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: No me funciona javascript simple ni en opera ni en firefox

Cita:
Iniciado por bookmaster Ver Mensaje
En mi Script no uso name, fijate bien, uso id, pero el className es por el firefox es su manera de llamar al CSS, por eso te decia que podias verlo en el ejemplo de la web.
Hola!. Pues debe haberse caído tu server porque no carga tu web.

Estoy probando a poner .className('nombre') pero no se que es lo que hay que poner en 'nombre'. El id del elemento que llama al javascript??

Un saludo
  #7 (permalink)  
Antiguo 21/08/2007, 06:35
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: No me funciona javascript simple ni en opera ni en firefox

Cita:
Iniciado por rantamplan Ver Mensaje
Es un div que ocupa un formulario entero. El objetivo es poder esconder y mostrar el formulario (de búsqueda) cuando el usuario pulse un botón o un enlace.
Ya, pero déjanos ver el código de ese div. No hace falta que pongas su contenido, pero muestra cómo incluyes ese div.

Mejor aún ¿se puede ver en marcha?
  #8 (permalink)  
Antiguo 21/08/2007, 08:01
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Re: No me funciona javascript simple ni en opera ni en firefox

He estado mirando y si que se ve mi enlace y no se a caido el servidor, ya que tengo pleno acceso a el.

De todas maneras el script ya las visto y ahora te pondre el codigo de la capa que se modifica. Aunque si puedes verle en la web mejor, asi lo veras en funcionamiento.

Código HTML:
<DIV id="Calendario" class="OcultaCapa"></DIV> 
Y tambien te dejo el CSS por si te falta algo.
Código PHP:
<STYLE type="text/css">
<!--
.
MuestraCapa {
    
visibility:visible;
    
border2px solid #666666;
}
.
OcultaCapa {
    
visibility:hidden;
}
-->
</
STYLE
Aunque apoyo lo que dice Tunait, si se puede ver tu caso es mas facil darte la solución.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #9 (permalink)  
Antiguo 22/08/2007, 01:31
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: No me funciona javascript simple ni en opera ni en firefox

Cita:
Iniciado por tunait Ver Mensaje
Ya, pero déjanos ver el código de ese div. No hace falta que pongas su contenido, pero muestra cómo incluyes ese div.

Mejor aún ¿se puede ver en marcha?
Buenas!. Es una aplicacion interna en ruby on rails, así que no puede verse. Mejor te lo muestro sin el contenido porque son como 200 lineas de código:

<head>
...
<script language="Javascript">
<!--
function visible(nombreCapa)
{
var temp = document.getElementById(nombreCapa);
if(temp.style.display == "none")
temp.style.display = "inline";
else
temp.style.display = "none";
}
-->
</script>
...
</head>
<body>

<div id="header-form"><a id="muestra_busqueda" onclick="visible('container')">B&uacute;squeda de Candidatos</a></div>
<div id="container">
...
</div>
</div>
</body>

Última edición por rantamplan; 22/08/2007 a las 01:38
  #10 (permalink)  
Antiguo 22/08/2007, 03:35
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: No me funciona javascript simple ni en opera ni en firefox

Hola

Bueno, tal y como lo has puesto lo he copiado y pegado en un documento nuevo y funciona correctamente en firefox.

Ahora bien, si el contenedor container está oculto desde una hoja de estilos el navegador no lo ve cuando accedes al elemento. Así que supongo que estará mostrando el contenedor en el segundo click.

En el primer click no se cumple la primera condición así que lo pone en 'none'. Al segundo click sí se cumple pues ya le has asignado al objeto la propiedad.

Prueba con una de estas dos opciones:

dale la vuelta a la condición.

Código:
var temp = document.getElementById(nombreCapa);
if(temp.style.display == "inline")
temp.style.display = "none";
else
temp.style.display = "inline";
o si no aplícale el atributo style con la propiedad display:none directamente al elemento

Código:
<div id="container" style="display:none">
Un saludo
  #11 (permalink)  
Antiguo 22/08/2007, 05:28
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: No me funciona javascript simple ni en opera ni en firefox

Ya he descubierto lo que pasa. Resulta que estoy usando la librería prototype.

Si no la cargo me funciona la función esta de mostrar/ocultar en los 3 navegadores. Pero si la cargo sólo funciona en IE. Alguna idea?.

P.D.- Me es imprescindible usarla, porque se usa para algunas llamadas ajax que uso en la aplicación.

Un saludo.
  #12 (permalink)  
Antiguo 22/08/2007, 07:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: No me funciona javascript simple ni en opera ni en firefox

¿Has probado a cambiarle el id al contenedor?
  #13 (permalink)  
Antiguo 23/08/2007, 00:34
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: No me funciona javascript simple ni en opera ni en firefox

Cita:
Iniciado por tunait Ver Mensaje
¿Has probado a cambiarle el id al contenedor?
Si acabo de probarlo pero sigue igual. Lo que esta claro es que depende de la clase prototype, porque es quitarla y funcionar mi script pero se deshabilitan las funciones ajax. De todas formas voy a probar 1 par de cosas más. Y a las malas en firefox y en ópera se pierde la funcionalidad de poder esconder esa capa y ya está.
  #14 (permalink)  
Antiguo 23/08/2007, 03:30
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: No me funciona javascript simple ni en opera ni en firefox

Es extraño que algo tan simple no funcione por usar esa librería
  #15 (permalink)  
Antiguo 23/08/2007, 06:55
Avatar de rantamplan  
Fecha de Ingreso: agosto-2006
Mensajes: 32
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: No me funciona javascript simple ni en opera ni en firefox

Cita:
Iniciado por tunait Ver Mensaje
Es extraño que algo tan simple no funcione por usar esa librería
Ya, eso pienso yo. Pero el caso es que es quitarla y funcionar en firefox y en opera. Si no se llamase "visible" me preocuparía porque hubiese otra función con el mismo nombre... MIERDA!!! JAJAJAJA, según escribía esto me he dado cuenta de que a lo mejor había una funcion en prototype que se llamase "visible" y que quizás ie7 cogía una y firefox y ópera la otra.

Y le he cambiado el nombre y efectivamente eso es. Jajaj madre mía 3 días por no haberle puesto otro nombre (suerte que he estado haciendo otras cosas, sino me mato).

En fin muchas gracias por todo. Si no fuera porque iba a escribir este post no me hubiese dado cuenta.

Un saludo y muchísimas gracias
  #16 (permalink)  
Antiguo 23/08/2007, 07:24
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: No me funciona javascript simple ni en opera ni en firefox

jejeje bueno, resuelto el misterio creo que todos hemos caído alguna vez en choques de nombres repetidos de objetos.

Me alegra que lo solucionaras

Un saludo
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 16:30.