Foros del Web » Programando para Internet » Javascript »

Problema con los parametros de una funcion

Estas en el tema de Problema con los parametros de una funcion en el foro de Javascript en Foros del Web. <HTML> <HEAD> <SCRIPT> var enlace = "'web1','http://www.web1.com'"; function Indice (){ Listado=Indice.arguments; for(i=0; i<Listado.length; i++) { document.write("<A href="+Listado[i+1]+">"+Listado[i]+"</A></BR>"); i++; } } </SCRIPT> </HEAD> <BODY> <SCRIPT> Indice ...
  #1 (permalink)  
Antiguo 14/11/2004, 10:54
Avatar de Wel
Wel
 
Fecha de Ingreso: marzo-2003
Mensajes: 77
Antigüedad: 21 años, 1 mes
Puntos: 0
Mensaje Problema con los parametros de una funcion

<HTML>
<HEAD>
<SCRIPT>
var enlace = "'web1','http://www.web1.com'";

function Indice (){
Listado=Indice.arguments;
for(i=0; i<Listado.length; i++) {
document.write("<A href="+Listado[i+1]+">"+Listado[i]+"</A></BR>");
i++;
}
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
Indice ('web1','http://www.web1.com'); /* SI FUNCIONA */
Indice (enlace); /* NO FUNCIONA */
</SCRIPT>
</BODY>
</HTML>

Si ejecutais el siguente codigo podeis ver que la primera forma en la que utilizo la funcion "Indice" si funciona,
pero mi intencion es saber que tengo que modificar para que me funcione de la segunda forma, es decir pasar los valores a la funcion "Indice" a traves de una variable, y no a traves de sus argumentos.

Creo que me he explicado bien ¿no? bueno espero que alquien me ayude.
  #2 (permalink)  
Antiguo 14/11/2004, 11:09
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola
A mi parecer, asignar ese valor a la variable la convierte en un texto, no en dos entidades, y por eso no funciona.
Quizás si defines la variable como una matriz de datos:
var enlace = ['web1','http://www.web1.com']
Prueba a ver
  #3 (permalink)  
Antiguo 14/11/2004, 11:24
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola de nuevo, Wel
Creo que ha mejorado, pero sigue pasando la matriz como un solo objeto.

No sé si habrá otra solución, pero funciona si llamas así:
Indice (enlace[0],enlace[1]);
  #4 (permalink)  
Antiguo 14/11/2004, 11:33
Avatar de Wel
Wel
 
Fecha de Ingreso: marzo-2003
Mensajes: 77
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias Angsanchez pero esa solucion que ciertamente funciona, no me vale, pues la funcion indice la voy a usar pasandoles diferentes variables y unas tendran mas indices que otras
por ejemplo unas veces podra recibir 1 (enlaces= "'web1','http://www.web1.com'";) otras dos (enlace= "'web1','http://www.web1.com','web2,'http://www.web2.com'";)
...

en definitiva que la funcion Indice tiene que usarse sin darle los parametros directamente o sea asi: "Indice (enlace);"

Última edición por Wel; 14/11/2004 a las 11:37
  #5 (permalink)  
Antiguo 14/11/2004, 11:45
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Ya veo. Entretanto he encontrado otra forma, creando la matriz 'enlace' como antes y suprimiendo en la función la línea
Listado=Indice.arguments
Dado que a la función ya le llega una matriz, siempre tendrá un único parámetro y la matriz 'arguments' no hace falta. Queda así:
Código HTML:
<HEAD>
<SCRIPT>
var enlace = ['web1','http://www.web1.com']

function Indice (Listado) {
for(i=0; i<Listado.length; i++) {
document.write("<A href="+Listado[i+1]+">"+Listado[i]+"</A></BR>");
i++;
}
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
Indice (enlace); 
</SCRIPT>
</BODY> 
Supongo que con más índices funcionará igual.

Por cierto, me ha venido bien ver eso de .arguments, no lo conocía. A veces he tenido funciones donde quería variar el nº de argumentos.
  #6 (permalink)  
Antiguo 14/11/2004, 11:47
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Sí funciona con dos índices.
Por cierto, tienes mal escrito </BR>
debe ser <BR> o <BR/>
  #7 (permalink)  
Antiguo 14/11/2004, 11:59
Avatar de Wel
Wel
 
Fecha de Ingreso: marzo-2003
Mensajes: 77
Antigüedad: 21 años, 1 mes
Puntos: 0
Gracias por todo, Incluso por el detalle del "BR", entonces no se porque, pero el explorador me interpreta </BR> como un salto de linea. (digo yo, que entonces tambien estará permitido) ¿NO?...

Bueno, me alegro que al final hemos aprendido los dos algo nuevo, tu lo del .arguments y yo mi duda.

HASTA LA PROXIMA!!.
  #8 (permalink)  
Antiguo 14/11/2004, 12:07
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
De nada.
Cita:
Iniciado por Wel
"BR", entonces no se porque, pero el explorador me interpreta </BR> como un salto de linea. (digo yo, que entonces tambien estará permitido) ¿NO?...
Internet Explorer te lo perdona, pero Firefox no lo reconoce y loponetodoseguido

Hasta otra
__________________
Angel :cool:
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:18.