Foros del Web » Programando para Internet » Javascript »

Tengo este javascrpit y me da error en IE

Estas en el tema de Tengo este javascrpit y me da error en IE en el foro de Javascript en Foros del Web. Código: function patrocina(){ var usados = new Array(23); var num = 0; var contador = 0; function dameNumero(min, max) { return Math.floor(Math.random() * (max - ...
  #1 (permalink)  
Antiguo 02/03/2012, 11:55
 
Fecha de Ingreso: enero-2012
Ubicación: Segovia
Mensajes: 8
Antigüedad: 12 años, 3 meses
Puntos: 1
Tengo este javascrpit y me da error en IE

Código:
function patrocina(){
	var usados = new Array(23);
	var num = 0;
	var contador = 0;
	function dameNumero(min, max)  
	{  
	  return Math.floor(Math.random() * (max - min + 1)) + min;  
	}
	document.write("<table><tr>");			
			for(i=0; i<usados.length; i++){
				num = dameNumero(1,23);
				if(usados.indexOf(num) != -1){
					i--;
				}				
				else{
					if(contador%2 == 0){
						document.write("</tr><tr>");
					}
					if(num == 2){
						document.write("<td><a href='http://www.cantalejo.com/tienda/' target='_blank'><img src='http://www.elcantal.es/wp-content/uploads/2012/02/"+ num +".jpg' title='CANTALEJO.COM' width='300' height='187'  class='alignnone size-medium wp-image-878' style='border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 5px;'></a></td>"); 
						contador ++;
						usados[i] = num;
					}
					if(num == 3){
						document.write("<td><a href='http://www.centroveterinariocantalejo.com/' target='_blank'><img src='http://www.elcantal.es/wp-content/uploads/2012/02/"+ num +".jpg' title='Centro Veterinario' width='300' height='187'  class='alignnone size-medium wp-image-878' style='border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 5px;'></a></td>"); 
						contador ++;
						usados[i] = num;
					}
					if(num == 5){
						document.write("<td><a href='http://deportessanz.com/' target='_blank'><img src='http://www.elcantal.es/wp-content/uploads/2012/02/"+ num +".jpg' title='Deportes Sanz' width='300' height='187'  class='alignnone size-medium wp-image-878' style='border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 5px;'></a></td>"); 
						contador ++;
						usados[i] = num;
					}
					if(num == 10){
						document.write("<td><a href='http://www.hoasis.es/' target='_blank'><img src='http://www.elcantal.es/wp-content/uploads/2012/02/"+ num +".jpg' title='Hoasis.es' width='300' height='187'  class='alignnone size-medium wp-image-878' style='border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 5px;'></a></td>"); 
						contador ++;
						usados[i] = num;
					}
					if(num == 20){
						document.write("<td><a href='http://www.dia.es/' target='_blank'><img src='http://www.elcantal.es/wp-content/uploads/2012/02/"+ num +".jpg' title='dia.es' width='300' height='187'  class='alignnone size-medium wp-image-878' style='border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 5px;'></a></td>"); 
						contador ++;
						usados[i] = num;
					}
					if(num == 21){
						document.write("<td><a href='http://www.terrazoscantalejo.com/' target='_blank'><img src='http://www.elcantal.es/wp-content/uploads/2012/02/"+ num +".jpg' title='Terrazos Cantalejo' width='300' height='187'  class='alignnone size-medium wp-image-878' style='border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 5px;'></a></td>"); 
						contador ++;
						usados[i] = num;
					}	
					if(num != 2 && num != 5 && num != 10 && num != 20 && num != 21 && num != 3){
				usados[i] = num;
				document.write("<td><img src='http://www.elcantal.es/wp-content/uploads/2012/02/" + num + ".jpg'  width='300' height='187' class='alignnone size-medium wp-image-878' style='border-image: initial; border-width: 1px; border-color: black; border-style: solid; margin: 5px;'/></td>");
				contador++;
				}
			}	
		}
		
		document.write("</table>");
}
El error segun el depurador del ie esta en esta linea:
if(usados.indexOf(num) != -1){

Alguna sugerencia?
  #2 (permalink)  
Antiguo 02/03/2012, 13:14
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
Puntos: 1485
Respuesta: Tengo este javascrpit y me da error en IE

¡buenas!
te recomendaría que muestres más atención al mensaje de error que a la línea en si donde se produce el error. he de suponer que iexplorer está indicando que el método indexOf no existe en usados. y precisamente, iexplorer no define dicho método para los arrays, al menos no hasta la versión 8. la versión 9 y 10 no puedo confirmarlo pero una busqueda rápida me dice que la 9 tiene soporte para ECMAScript5. sugerencia, en la web encuentras ejemplos de códigos en cómo implementar una función similar cuando el intérprete no lo define.
  #3 (permalink)  
Antiguo 02/03/2012, 13:39
 
Fecha de Ingreso: enero-2012
Ubicación: Segovia
Mensajes: 8
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Tengo este javascrpit y me da error en IE

Vamos imagino que es el indexof..
Y que me tocaria hacerlo a mano o a bajo nivel para que ie lo entienda.. Pues anda jeje a romperse la cabeza.

Muchas gracias
  #4 (permalink)  
Antiguo 02/03/2012, 13:50
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
Puntos: 1485
Respuesta: Tengo este javascrpit y me da error en IE

seguramente el error debe ser por el indexOf... pero como no haz mencionado la versión de iexplorer entonces puede haber lugar a dudas. y te repito, en la web hay ejemplos de códigos para implementar una función similar. solo tienes que buscar por palabras claves como javascript array indexof support.
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 11:49.