Foros del Web » Programando para Internet » Javascript »

Paso de cadena constante a una función.

Estas en el tema de Paso de cadena constante a una función. en el foro de Javascript en Foros del Web. Hola, como le paso a una función una cadena constante. EStoy poniendo: <body ... onLoad=" texto('Esta es la cadena constante');return true;" ....> Y luego accedo: ...
  #1 (permalink)  
Antiguo 18/07/2003, 13:24
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Paso de cadena constante a una función.

Hola, como le paso a una función una cadena constante. EStoy poniendo:


<body ... onLoad=" texto('Esta es la cadena constante');return true;" ....>

Y luego accedo:



function texto(cadena)
{

//Accedo a la cadena
....
}

Al acceder dentro de la función texto a cadena, me dice que no está definido cadena, pero si es lo que le paso como parámetro no??


Espero que alguién vea en lo que me estoy equivocando.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 18/07/2003, 15:26
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
En general, veo bien el uso de las comillas, ya que tienes comillas dobles para el valor del onload y simples para el parámetro.

Yo cambiaría un par de cosas:

- Antepon la palabra javascript: antes de la llamada a la función, ya que lo que vas a ejecutar contiene mas du un comando (no estoy seguro de que esté incorrecto como lo tienes pero nada te cuesta hacer la prueba).

- Quita el espacio que tienes antes del nombre de la función (pura cábala).

- Revisa que el nombre de la función no esté colisionando con el nombre de ningún elemento HTML.

Saludos.
  #3 (permalink)  
Antiguo 18/07/2003, 16:18
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola, sigue sin funcionar, lo que pretendo es que en la barra de estados aparezca la frase dinámicamente que le pase como parámetro.


Esta función la tengo en un "funcion.js":

var posicion = 0

function texto(cadena)
{
if (posicion < cadena.length)
posicion ++;
else
posicion = 1;

string_actual = cadena.substring(posicion) + cadena.substring(0,posicion)
window.status = string_actual
setTimeout("texto(cadena)",150)
}

Y la llamo desde un otro:
<SCRIPT LANGUAGE="JavaScript" src="funcion.js"></SCRIPT>

...

<body onLoad="texto(' Texto ');return true;">

...


Gracias por tu interés.
  #4 (permalink)  
Antiguo 18/07/2003, 16:29
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
¿Probaste lo de anteponer javascript:?

Asi:

<body onLoad="javascript:texto(' Texto ');return true;">

Pruébalo y dime.

Saludos.
  #5 (permalink)  
Antiguo 18/07/2003, 16:31
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
No, ya creo que se que es, el la llamada al setTimeOut().

Pruebalo asi a ver:

setTimeout("texto(" + cadena + ")",150)

Saludos.
  #6 (permalink)  
Antiguo 18/07/2003, 16:33
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Si, lo he probado y me dice que cadena no está definida, sigue sin funcionar, no sé que podrá ocurrir.


Gracias.
  #7 (permalink)  
Antiguo 18/07/2003, 16:34
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
ah!!, voy a probar con eso último que dices....
  #8 (permalink)  
Antiguo 18/07/2003, 16:34
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Revisa lo del setTimeout() por favor. Creo que no viste mi segundo mensaje porque estabas respondiendo.

Saludos.

NOTA POSTERIOR: Y ahora yo no he visto tu respuesta porque estaba escribiendo.
  #9 (permalink)  
Antiguo 18/07/2003, 16:38
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Me dice en la barra de estados:


Error en la página


No sé que pasará ahora....
  #10 (permalink)  
Antiguo 18/07/2003, 16:53
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola de nuevo.

Pruebalo asi:

Código PHP:
<html>
 <
head>
  <
script language="JavaScript">

   var 
posicion 0
   
var cadena "";

   function 
texto(){ 
    if (
posicion cadena.length
     
posicion ++;
    else
     
posicion 1;
    
string_actual cadena.substring(posicion) + cadena.substring(0,posicion);
    
window.status string_actual;
    
setTimeout("texto()",150);
   }

   function 
carga(str){
    
cadena str;
    
texto();
    return 
true;
   }

  
</script>
 </head>
 <body onLoad="carga(' Texto ')">
 </body>
</html> 
Lo que he hecho es sacar el parámetro del setTimeout() ya que a mi eso siempre me ha dado problemas. He visto que otros lo usan con parámetros pero yo no lo he logrado. La idea es llamar a una función que inicialice la variable cadena y llame a texto(), luego de eso retorna true.

Saludos.
  #11 (permalink)  
Antiguo 18/07/2003, 17:04
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Funciona a las mil maravillas

Gracias por tu tiempo.

Un saludo.
  #12 (permalink)  
Antiguo 18/07/2003, 17:08
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Ok, me alegra que lo hayamos conseguido. 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 13:50.