FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Enviar Java desde Delphi
Aunque en un hilo anterior:
http://clubdelphi.com/foros/showthread.php?t=31503 Ya preguntaba algo parecido, después de mucho investigar he llegado a la conclusión de que mi planteamiento tal vez estuviera equivocado. Lo que realmente quiero es que mi programa Delphi interactúe de forma transparente con una página web que contiene comandos en Java, de manera que Delphi navegue automáticamente hasta la parte que el cliente necesita, sin que éste tenga que ir recorriendo interminables páginas web. Esto que parece fácil en principio, no lo es tanto, pues el servidor obliga (o al menos eso creo) a ir siguiendo los pasos correspondientes sin saltarse ninguno, como si llevara un registro de sesión de manera que hay que ir recorriendo obligatoriamente todas las páginas hasta llegar a la que busco. Para poder abrir alguna página concreta hay que pulsar algún botón que ejecuta un comando Java, por ejemplo: Código:
botones[1] = "javascript:document.formulario.submit()"; Espero haber sido algo más claro, y a ver si alguien me echa una mano, que es importante para mi proyecto Gracias |
#2
|
|||
|
|||
Idea
Bueno, cada ves que se presiona un botón en una página, creo que se ejecuta o se envía información a la página que se encuentra en el campo 'action' del formulario al que pertenece el botón. La información se envía de la siguiente forma:
'página en action'+?+componente1 = valor1 & componente2 = valor 2 & ... Donde los componentes son los botones, la TextBox y eso. Esto en el caso que el comando sea GET, de ser POST, se envía todo esto a la página en action pero con el POST, en el cuer´po del mensage HTTP Lo que puedes hacer es ver a qué página te envía el botón, bajarla y si existe otro botón ver a qué página envía este, y la última es la que le debes pasar el Browser. |
#3
|
|||
|
|||
Java desde Delphi
Bueno, me parece que no te había entendido bien.
Lo que quieres es que el Delphi, ya con la página bajada, ejecute el comando java que se ejecuta al presionar el botón. Si no me equivoco, esto lo puedes hacer sin enredarte con el java, dejando que un buscador, como el Internet Expliorer haga ese trabajo. En ese caso, lo que tines es que copiar el comando o la función java que tu quieres que el IE te ejecute, enviarle la página a él pero le agregas un bloque Script (que siempre se ejecuta cuando el IE llega a analizar la página hasta ahí '<script>' y en él pones el código que ejecuta el botón, creo que en ese caso el IE te va a ejecutar el código y él solito te va a acceder a la página que llama el botón. |
#4
|
||||
|
||||
Buf, pues no te llego a entender lo que me cuentas.
Yo utilizo el TWebBrowser, pero lo oculto para que sólo aparezca cuando he llegado a la página que quiero. No sé como el TWebBrowser puede enviar el comando Java. ¿Algún ejemplo? Gracias por tu respuesta. |
#5
|
|||
|
|||
Form.Submit
Bueno, te explicaré algo que seguramente ter va a ayudar.
el comando document.formularion.submit() lo que hace es que se ejecute la acción de un formulario que se halla en la página, es decir: <form name="formulario" action='http://www.hola.com/hola.php'> lo que tienes que hacer para llegar a la página que se habre después de presionar el botón es obtener la página que está en el campo action del formulario. Si tienes duda de cómo obtener la página, pregunta. |
#6
|
||||
|
||||
LiadSoft, en primer lugar gracias por tus explicaciones, es un campo nuevo para mi, y estoy investigando como resolver esto.
El formulario ejecuta esto: Código:
<form name="formulario" method="POST" action="IndexAction.do"> Tal vez la solución sea emular una pulsación del botón web a través de código desde Delphi, pero no sé como se puede hacer eso. Te paso el código completo de la página para ver si te ayuda: |
#7
|
||||
|
||||
Hola,
Tal como te dice liadsoft, formulario.submit() (que por cierto, es código JavaScript, que nada tiene que ver con Java) lo que hace es mandar los datos del formulario a la url indicada. Esto nunca va a ser equivalente a cargar dicha url directamente en el navegador pues justamente no estarías mandando los datos contenidos en el formulario. El WebBrowser te permite enviar un POST como "dios manda". Revisa este hilo en donde se da la forma de hacerlo. Nota que si quieres hacerlo transparente al usuario, entonces tú tienes que proveer los datos en el código delphi y hacer el POST. Tienes entonces que examinar el código HTML del formulario para ver cuáles son los nombres de los campos para saber qué es lo que tienes que mandar. // Saludos |
#8
|
||||
|
||||
Gracias Román tengo que probar ese código que me pones.
Mientras tanto, investigando por mi cuenta (que soy nuevo en esto del JavaScript ) he encontrado una función que permite ejecutar código de cualquier página web. Lo voy a poner a continuación para que la gente que se encuentre en situaciones similares tenga una ayuda creo que importante.
Extraído de aquí, incluyendo explicación en inglés. Ahora me queda averiguar cómo ejecutar código que no está incluido en la propia página web, sino en librerías de funciones .js que están en el servidor y que ejecuta desde algunas de esas páginas. Seguiremos informando |
#9
|
||||
|
||||
Hola,
Cita:
Adjunto una pequeña prueba. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Enviar parametros desde Delphi a Storage Procedures en BD Firebird | cuburu | Conexión con bases de datos | 12 | 18-01-2006 00:00:48 |
se puede enviar un email desde delphi? | lazarous | Varios | 1 | 17-10-2005 15:01:12 |
enviar mail desde delphi 7 | Diego | Internet | 2 | 07-06-2004 14:07:50 |
enviar un amail desde delphi 5 | camambrini | Internet | 1 | 03-01-2004 16:52:06 |
como enviar un dataSet desde Delphi a Oracle?? | Jaco | Oracle | 3 | 25-09-2003 17:19:25 |
|