Foros del Web » Programando para Internet » Javascript »

Problema con javascript en Firefox

Estas en el tema de Problema con javascript en Firefox en el foro de Javascript en Foros del Web. Buenas tardes, Utilizo una función javascript para poder rotar 4 imágenes en un mismo espacio. En IE se ejecuta correctamente pero no en Firefox. No ...
  #1 (permalink)  
Antiguo 04/11/2008, 10:54
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 15 años, 11 meses
Puntos: 0
Problema con javascript en Firefox

Buenas tardes,

Utilizo una función javascript para poder rotar 4 imágenes en un mismo espacio. En IE se ejecuta correctamente pero no en Firefox. No reconoce la variable que establece el link de cada imagen.
Aprovecho para lanzar otra pregunta: sería posible crear un script que llamara a la función animateImages() al cargar esta página sin tener que cargarla enla funcion Onload?

Este es el código que utilizo (señalo en rojo la linea que devuelve un error en Firefox.

<html><head><title>Javascript Rotation</title>
<script language="javascript">
var frames;
images=new Array(5);
images[0]=new Image();
images[0].src="images/copy.jpg";
images[1]=new Image();
images[1].src="images/banner-nike.gif";
images[2]=new Image();
images[2].src="images/BPM.gif";
images[3]=new Image();
images[3].src="images/flamingsoccer.jpg";
images[4]=new Image();
images[4].src="images/Header.GIF";
frames=0;
<HTML>
<HEAD>
<title>My Title</title>
<script language="javascript">

function animateImages()
{
document.image_placeholder.src=images[frames].src;
image_link.href=links[frames].value;
frames=(frames+1)%5;
timeout_id=setTimeout("animateImages()",2000);
}
</script>
</head>
<body bgcolor="white" onLoad="animateImages();">
<a href="javascript:0" name="book_link">
<img src="images/copy.jpg" name="image_placeholder" border="0" width="154" height="129"></a>
</body>
</html>

¡Muchas gracias!
  #2 (permalink)  
Antiguo 06/11/2008, 09:56
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con javascript en Firefox

Tomando ejemplo de un usuario que requirió ayuda de los sabios cuando creía que nadie le podía solucionar su asunto y viendo como los sabios acudieron de inmediato, decido seguir su ejemplo.
Imploro la ayuda de Tunait, Karlankas, Caricatos, JavierB o David el Grande por si pudieran ayudar a este pobre errante, .
  #3 (permalink)  
Antiguo 06/11/2008, 10:15
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con javascript en Firefox

image_link no sera document.getElementById('book_link')?

Tampoco veo seteado links... falta codigo...

Código PHP:
<html><head><title>Javascript Rotation</title>
<
script language="javascript">
    var 
frames;
    
images=new Array(5);
    
images[0]=new Image(); 
    
images[0].src="/Design/Gato.png";
    
images[1]=new Image(); 
    
images[1].src="/Design/Galaxia.png";
    
images[2]=new Image(); 
    
images[2].src="/Design/Hoja.png";
    
images[3]=new Image(); 
    
images[3].src="/Design/Pluma.png";
    
frames=0;
    
    function 
animateImages()
    {
        
document.image_placeholder.src=images[frames].src;
        
document.getElementById('book_link').href='lala';
        
frames=(frames+1)&#37;4;
        
timeout_id=setTimeout("animateImages()",2000);
    }
</script>

<HTML>
<HEAD>
<title>My Title</title>
</head>
<body bgcolor="white" onLoad="animateImages();">
<a href="javascript:0" id="book_link">
<img src="http://www.forosdelweb.com/images/copy.jpg" name="image_placeholder" border="0" width="154" height="129"></a>
</body>
</html> 
Asi como esta el codigo.. anda..
  #4 (permalink)  
Antiguo 06/11/2008, 12:42
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con javascript en Firefox

Fernando, gracias por tu respuesta!!

Es extraño pq ahora sí que me funciona. El texto html que copié estaba mal. Cogí una de las pruebas que hice olvidándome incluir los links como apuntabas y tb trabajaba con el id del book_link, pq el id da menos problemas. Bueno la cosa es que ahora va... y es que estaba desesperado pq no veía ninguna incoherencia. En fin... Copio el código más abajo con los links por si a alguien le sirve.

Ahora sólo me faltaría saber si es posible crear un script que llamara a la función animateImages() al cargar esta página sin tener que cargarla enla funcion Onload. ¿Alguna idea?

¡Y gracias de nuevo Fernando!



<html><head><title>Javascript Rotation</title>
<script language="javascript1.1">
var frames;
images=new Array(5);
links=new Array(5)
images[0]=new Image();
var frames;
images=new Array(5);
images[0]=new Image();
images[0].src="/Design/Gato.png";
images[1]=new Image();
images[1].src="/Design/Galaxia.png";
images[2]=new Image();
images[2].src="/Design/Hoja.png";
images[3]=new Image();
images[3].src="/Design/Pluma.png";

links[0]=new String();
links[0].value="http://www.sitio1.dominio/";
links[1]=new String();
links[1].value="http://www.sitio2.dominio";
links[2]=new String();
links[2].value="http://www.sitio3.dominio";
links[3]=new String();
links[3].value="http://www.sitio4.dominio";
links[4]=new String();
links[4].value="http://www.sitio5.dominio";
frames=0;
function animateImages()
{
document.image_placeholder.src=images[frames].src;
document.getElementById('book_link').href=links[frames].value;

frames=(frames+1)%5;
timeout_id=setTimeout("animateImages()",2000);
}
</script>
</head>
<body bgcolor="white" onLoad="animateImages();">
<form name=form_home_images method="POST" action="" >
<table border=0><tr><td>
<a href="javascript:0" id="book_link"><img src="http://www.forosdelweb.com/images/copy.jpg" name="image_placeholder" border="0"></a>
</td></tr></table>
</form>
</body>
</html>
  #5 (permalink)  
Antiguo 06/11/2008, 12:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Problema con javascript en Firefox

Es que hay que esperar a que se carguen los elementos antes de trabajar con ellos. ¿Por qué no quieres usar el evento onload?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 06/11/2008, 12:50
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con javascript en Firefox

Cita:
pq el id da menos problemas
No habras hecho document.book_link no? :P
Yo uso para TODO el getElement.. no siempre se puede hacer de esa manera

Cita:
Ahora sólo me faltaría saber si es posible crear un script que llamara a la función animateImages() al cargar esta página sin tener que cargarla enla funcion Onload. ¿Alguna idea?
Podes poner en el codigo JS... window.onload=animateImages;... de otra manera no se puede

  #7 (permalink)  
Antiguo 07/11/2008, 02:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con javascript en Firefox

¡Buenos días!

Respondo a los dos:

Para David el Grande-> Los elementos estaban cargados pero las imágenes no rotaban en Firefox, pero sí en IE, pq de una variable me decía que no tenía properties. Imagino que todo sería problema de caché pq después de probar lo que me envió Fernando y ver que funcionaba y al comprobar que yo tenía lo mismo, no puedo imaginar otra cosa.

Quería prescindir del evento onload porque trabajo con un editor de contenidos, donde las páginas que forman la web tienen una plantilla general donde ya está definida una función onload para cargar partes fijas. Pero el problema surge cuando al cargar una página específica quiero ejecutar algo concreto sólo para esta página. Si creo de nuevo una función onload, al haber 2, se pierde la referencia de la segunda.

Para Fernando-> Je! primero había hecho un document.book_link. Pero enseguida lo cambié por la función getElementById pq de lo contrario podría tener problemas con el resto de navegadores.

Para los dos-> ¡Muchas gracias por vuestro tiempo!
  #8 (permalink)  
Antiguo 07/11/2008, 05:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con javascript en Firefox

En ese caso puedes usar la función addLoadEvent() (Por Simon Willison), o también addEventListener().

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 07/11/2008, 07:11
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Problema con javascript en Firefox

Gracias David por tu respuesta!

Tengo una duda, ¿desde donde se invoca a esta función?
  #10 (permalink)  
Antiguo 07/11/2008, 07:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema con javascript en Firefox

En el comienzo de tu código , que es donde normalmente se asignan los eventos (hasta el mismo window.onload).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 07/11/2008, 08:33
 
Fecha de Ingreso: mayo-2008
Mensajes: 10
Antigüedad: 15 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Problema con javascript en Firefox

Genial, solucionado!

Muchas gracias Fernando y buen fin de semana!!
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:18.