Foros del Web » Programando para Internet » Javascript »

problemas con I E 8

Estas en el tema de problemas con I E 8 en el foro de Javascript en Foros del Web. En mi tema anterior tema pedía ayuda, para crear un script para cambiar una imagen aleatoriamente cada cierto tiempo.navegando por la web conseguí este script ...
  #1 (permalink)  
Antiguo 13/10/2010, 14:50
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
problemas con I E 8

En mi tema anterior tema pedía ayuda, para crear un script para cambiar una imagen aleatoriamente cada cierto tiempo.navegando por la web conseguí este script que funciona muy bien con Mozilla y Chrome pero no IE. Puede alguien decirme porque y como se solucionaría.


Muchísimas gracias.


// CANTIDAD DE IMAGENES


var cant_img = 10

var t_img = 1000


function cambiar() {

img = Math.ceil(Math.random()*cant_img);
imagen=new Image;


imagen.src="imgram/" + img + ".jpg";
document.images['imagen'].src=imagen.src

}



::::::::: El documento HTML quedaría de la siguiente manera :::::::::
<html>
<head>
<title>Imagen aleatoria con java script</title>

<!-- Incluímos el archivo imagenes.js con el código JavaScript -->

<script src="imagenes.js" type="text/javascript"></script>
</head>


<body>



<img src="" name="imagen">



<script language="JavaScript" type="text/javascript">

setInterval("cambiar()",t_img);

</script>

</body>
</html>

Lo he reducido pero viene con unos comentarios muy buenos si alguien le interesa lo cuelgo entero
  #2 (permalink)  
Antiguo 13/10/2010, 15:09
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: problemas con I E 8

en vez de usar su nombre, dale una id y usar document.getElementById()
  #3 (permalink)  
Antiguo 13/10/2010, 15:18
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: problemas con I E 8

si usas la consola de depuracion de iexplorer8, este te marcara en que linea ocurre el error. desgraciadamente a veces los mensajes de la consola no son lo suficiente explicativo como para acatar el problema. en fin, el problema consiste en la reservacion de identificadores generados por iexplorer. iexplorer tiene la maldita maliciosa costumbre de generar variables de elementos con atributos name e id, de modo que su valor se convierte en variable. estas variables estan protegidas, no se puede sobreescribir. tienes dos soluciones: (a) la que siempre se viene comentando, evitar utilizar como identificador los valores asignado a atributos name e id para nombrar variables o funciones; (b) o acostumbrese a definir las variables explicitamente con el keyword var.

con estos detalles, te dejo de asignación determinar cual es la variable que hace conflicto con el valor de atributo. le conviene no acostumbrarse a copiar y pegar, eso te hace daño.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 14/10/2010, 00:41
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: problemas con I E 8

Cita:
Iniciado por IsaBelM Ver Mensaje
en vez de usar su nombre, dale una id y usar document.getElementById()
Gracias por contestar tan rapido pero me lo podias poner como se hace escribir otra linea para IE .


Gracias
  #5 (permalink)  
Antiguo 14/10/2010, 00:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: problemas con I E 8

Cita:
Iniciado por IsaBelM Ver Mensaje
en vez de usar su nombre, dale una id y usar document.getElementById()
La colección document.images funciona correctamente con el atributo name en todos los navegadores (incluídos todas las versiones del explorer)... al menos desde las primeras que yo recuerdo haber usado...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 14/10/2010, 01:06
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: problemas con I E 8

Mira esta muy bien lo que dices de estudiar y tal ,esto lo tengo como un jovi y como dices tu copiando y pegando ,he aprendido bastante mirando ejemplos habrá gente que tenga unos estudios referidos a programación y otros que no.
De todas formas muchas gracias por contestar y por esa lección teórica que creo haber comprendido aunque dudo mucho que lo sepa llevar a la practica.


Muchas gracias
  #7 (permalink)  
Antiguo 14/10/2010, 01:08
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: problemas con I E 8

federico, eso que leistes al final de mi mensaje es mi firma. un texto que no tiene que ver nada con el mensaje que intentaba comunicar en este tema.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 14/10/2010, 01:20
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: problemas con I E 8

Zeokilled no estoy en absoluto enfadado lo que quiero es un ejemplo de como quedaría el script
en estos momentos tengo enfrente de mi un libro que se llama Programación en JavaScript De Jose Manuel Alarcon y decididamente creo que tendre que seguir pidiendo ayuda por estos foros.

Un saludo y Gracias
  #9 (permalink)  
Antiguo 14/10/2010, 01:22
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: problemas con I E 8

Por favor un ejemplo



Muchas Gracias
  #10 (permalink)  
Antiguo 14/10/2010, 01:54
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: problemas con I E 8

function cambiar() {

img = Math.ceil(Math.random()*cant_img);


imagen=new Image;


imagen.src="imgram/" + img + ".jpg";
document.images['imagen'].src=imagen.src

}

El objeto no acepta esta propiedad o método.


Esto es lo que pone la consola de internet explorer como lo puedo corregir

Saludos
  #11 (permalink)  
Antiguo 14/10/2010, 01:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: problemas con I E 8

bien, ya localizastes cual es la linea que genera error. vuelve a leer las dos soluciones que mencione, la mas rapida de aplicar es la b.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #12 (permalink)  
Antiguo 14/10/2010, 03:34
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: problemas con I E 8

function cambiar()
{
img = Math.ceil(Math.random()*cant_img);

var imagen =new Image;

imagen.src="irudiak/" + img + ".jpg";

document.images['imagen'].src=imagen.src

}

¿Algo así ?

Saludos
  #13 (permalink)  
Antiguo 14/10/2010, 03:35
 
Fecha de Ingreso: julio-2008
Mensajes: 51
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: problemas con I E 8

Sencillo muchas gracias
  #14 (permalink)  
Antiguo 14/10/2010, 04:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: problemas con I E 8

Cita:
Iniciado por caricatos Ver Mensaje
La colección document.images funciona correctamente con el atributo name en todos los navegadores (incluídos todas las versiones del explorer)... al menos desde las primeras que yo recuerdo haber usado...

Saludos
lo he estado probando, y no por que no me fíe de tu palabra, y me ha funcionado. lo que me lleva a pensar que cometí el mismo error que txepetxa y esto a su vez me llevó a pensar que IE8 no admitía esa colección
gracias a ambos por iluminándonos

Etiquetas: Ninguno
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 18:29.