Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > HTML, Javascript y otros
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Ejecutar función de JavaScript a partir del nombre de su identificador (string)

Hola,

Estoy tratando de organizarme mejor cuando utilizo el objeto "XmlHttpRequest". Resulta que quisiera "abstraer" la petición HTTP de lo que ha de hacerse con el resultado de esta. Así me gustaría contar con una función (o una clase, pero, esto ya se verá más adelante) que se encargara sólo de realizar la petición HTTP mediante el objeto mencionado.

A la función (o método de la clase) le pasaría varios parámetros, conviene a saber: el método de la petición HTTP, la URL a la que enviar le petición, los pares de variables/valor correspondientes, y... y aquí está la madre del cordero, el nombre de una función que hiciera a modo de "callback" y a la que la función encargada de la petición HTTP llamaría a su vez cuando esta se completara, por ejemplo.

Ya he hecho varias pruebas al respecto, y, lo primero que me pregunté es cómo podía ejecutar una función en JavaScritp a partir del nombre de su identificador disponible en una variable de tipo string, claro. Esto me consta que puede hacerse, pero, lo vi vaya usted saber dónde y además buscando por Internet no he conseguido nada que me sacara del apuro...

El caso es que he llegado a poder ejecutar la función de este modo:

Código:
function PeticionHttp('get', 'http://url', 'variable=valor', 'FuncionCallBack')
{
  // Omitimos el resto del código
  
  eval(FuncionCallBack +'()'+);

  // Omitimos el resto del código
}
Es decir, he conseguido ejecutar la función utilizando a su vez la función "eval" de JavaScript, peeeeeeeeeeeero...

A dicha función "CallBack" tengo que pasarle unos parámetros... un par de ellos, y, aunque esto es posible usando "eval" para ejecutar la función, lo cierto es que uno de ellos me causaba problemas, porque se trata de no poco código HTML lo que contiene, y eso son muchas comillas dobles, simples, barras invertidas, sin invertir...

Errores, en definitiva, relativos a que el parámetro no llegaba en condiciones de ser utilizado. ¡Pero amigo! Como estaba acercándome al objetivo me dije, hombre, David, ya que pasas un parámetro pásalo bien... ¿porqué no pasas la instancia del objeto "XmlHttpRequest" y a partir de ahí le sacas el jugo que necesites desde la función "CallBack" correspondiente?

Ajá. Mi gozo en un pozo. No he conseguido pasar el objeto susomentado a la función "CallBack". ¡Y el caso es que llega "algo" del mismo, incluso da la impresión de que ahí está, porque lo que un "alert" reza sobre el parámetro de la función "CallBack" es el tipo del objeto que estamos pasando como parámetro! Pero ninguna de sus propiedades parece estar disponible, todas están "undefined".

Y digo yo si no habrá otra forma de ejecutar una función como lo preciso usando otra cosa que no sea la función "eval" de JavaScript. O si alguno de vosotros se ha topado con algún problema similar a este y recuerda algo que pueda echarme una mano. No corre ninguna prisa, por cierto.

Bueno. Si necesitáis más información no dudéis en hacérmelo saber. Gracias a todos de antemano y que paséis un buen día.

Para Román: me parece que alguna vez tratamos sobre el objeto "XmlHttpRequest" en el Foro de moderadores y tú preparaste cierto código que, desafortunadamente no he podido encontrar (y es raro, porque suelo guardar este tipo de información). Creo recordar incluso que algo tenía que ver con lo que quiero hacer, en cuanto a que usabas en el mismo alguna función a modo de "CallBack"). Por favor, Román, si lo encuentras por ahí y crees que tiene que ver sé tan amable de copiarlo por aquí. ¡Gracias!

Posdatas: No sé si en JavaScript se podrán pasar parámetros por referencia. Por otro lado viendo que era posible que tuviera algo que ver que la función que hace la petición HTTP declarara como local la variable que contiene la instancia del objeto "XmlHttpRequest", traté de declarar esa variable como global, pero, ni por esas, la cosa no terminaba bien tampoco.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 23-08-2006 a las 14:05:16.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear Instancias a partir de un nombre radaalvaro .NET 10 14-04-2009 23:22:32
Partir un string FunBit Varios 5 25-07-2005 17:58:32
ejecutar PHP o javascript desde delphi torito Varios 3 11-03-2005 17:48:37
Conocer PrinterIndex a partir del nombre Novás Varios 1 16-07-2004 18:26:14
Ejecutar javascript en Intraweb Brewster Internet 1 17-06-2004 22:55:38


La franja horaria es GMT +2. Ahora son las 15:07:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi