Hola Cadetill, no conocía tu página, pero me la apunto
Quiero ejecutar repetidamente un script de Javascript en una página web.
Tras cada ejecución crea una nueva página con el resultado insertado en una tabla. Tendré que leer estas tablas y almacenar su contenido. De momento la primera ejecución funciona, porque tengo problemas con la carga de la página, supongo que tengo que esperar a que acabe de cargar para poder leer la tabla y de momento no se como hacerlo.
He leido lo que permite hacer tu clase, pero creo que no permite la ejecución de script. Te comento esto porque no acabo de entender el ejemplo que acompañas. Como puedo ver los elementos que componen la página y para que sirve la búsqueda que añades en el ejemplo
Para saber si una página se ha terminado de cargar tienes que hacer, más o menos, lo mismo de la demo, es decir, tienes que controlar los 3 eventos del TWebBrowser indicados.
Para ejecutar un script tienes que hacer algo así
uses MSHTML;
procedure .....
var
Doc2: IHTMLDocument2;
Win2: IHTMLWindow2;
begin
Doc2 := WebBrowser.Document as IHTMLDocument2;
Win2 := Doc2.parentWindow;
Win2.execScript('funcion(parametros)', 'JavaScript');
Para completar un proyecto que estoy realizando solo me falta poder activar eventos dentro de los formularios ya que WebFormSetFieldValue no activa los eventos dentro del campo que llaman a unas funciones.
Saludos cadetill, tengo un input en un formulario web de 15 caracteres y cuando completo los campos en el el ultimo caracter se activa un evento pero ahora que lo hago de esta forma automática no activa el evento, podría enviar a activar el evento desde delphi?, como podría activar el evento de dicho input?.
No entiendo exactamente tu problema. No tiene nada que ver el uso de esta unit a la carga de una página web en el TWebBrowser. ¿Si cargas tu página desde un navegador (fuera de Delphi) te funciona correctamente?
La pregunta es sencilla, hay una web que contiene un formulario y en el formulario un input para escribir 15 caracteres, al completar de escribir los caracteres se dispara un evento que realiza una búsqueda y trae el resultado en otro campo, si digito manual la búsqueda se realiza pero si lleno los campos con WebFormSetFieldValue el evento de búsqueda no se dispara aunque estén completo los 15 caracteres así que la pregunta es la siguiente, como podría disparar el evento desde Delphi para que después que use WebFormSetFieldValue se realice la búsqueda y pueda obtener el campo del resultado
Vale, ya entiendo. El evento seguramente estará ejecutando una función JavaScript, por lo que sólo tienes que ejecutar esa función. Unos mensajes más arriba, a Paco le explico cómo hacerlo.
También puede valerte ejecutar un simple submit del formulario, pero eso ya no te lo aseguraría.
Cuando creas un objeto de tipo TWebControl tienes que pasarle en el constructor un TWebBrowser donde visualizar los datos. Este TWebBrowser tienes que inicializarlo al menos con about:blank ( WebBrowser.Navigate(‘about:blank’); ).
Luego sólo te queda hacer una llamada al método que quieras
Genial, funciona de maravilla.
Gracias.
Gracias a ti por pasarte por estos lares 🙂
Nos leemos
Muy bueno!!!
Hola Cadetill, no conocía tu página, pero me la apunto
Quiero ejecutar repetidamente un script de Javascript en una página web.
Tras cada ejecución crea una nueva página con el resultado insertado en una tabla. Tendré que leer estas tablas y almacenar su contenido. De momento la primera ejecución funciona, porque tengo problemas con la carga de la página, supongo que tengo que esperar a que acabe de cargar para poder leer la tabla y de momento no se como hacerlo.
He leido lo que permite hacer tu clase, pero creo que no permite la ejecución de script. Te comento esto porque no acabo de entender el ejemplo que acompañas. Como puedo ver los elementos que componen la página y para que sirve la búsqueda que añades en el ejemplo
un saludo y felicidades por la página
Hola Paco
Para saber si una página se ha terminado de cargar tienes que hacer, más o menos, lo mismo de la demo, es decir, tienes que controlar los 3 eventos del TWebBrowser indicados.
Para ejecutar un script tienes que hacer algo así
Nos leemos
Excelente.
Para completar un proyecto que estoy realizando solo me falta poder activar eventos dentro de los formularios ya que WebFormSetFieldValue no activa los eventos dentro del campo que llaman a unas funciones.
Buenas,
Me alegra que te haya servido. Cualquier duda ya sabes que puedes contactar conmigo.
Saludos
Saludos cadetill, tengo un input en un formulario web de 15 caracteres y cuando completo los campos en el el ultimo caracter se activa un evento pero ahora que lo hago de esta forma automática no activa el evento, podría enviar a activar el evento desde delphi?, como podría activar el evento de dicho input?.
Buenas,
No entiendo exactamente tu problema. No tiene nada que ver el uso de esta unit a la carga de una página web en el TWebBrowser. ¿Si cargas tu página desde un navegador (fuera de Delphi) te funciona correctamente?
Saludos
La pregunta es sencilla, hay una web que contiene un formulario y en el formulario un input para escribir 15 caracteres, al completar de escribir los caracteres se dispara un evento que realiza una búsqueda y trae el resultado en otro campo, si digito manual la búsqueda se realiza pero si lleno los campos con WebFormSetFieldValue el evento de búsqueda no se dispara aunque estén completo los 15 caracteres así que la pregunta es la siguiente, como podría disparar el evento desde Delphi para que después que use WebFormSetFieldValue se realice la búsqueda y pueda obtener el campo del resultado
Buenas,
Vale, ya entiendo. El evento seguramente estará ejecutando una función JavaScript, por lo que sólo tienes que ejecutar esa función. Unos mensajes más arriba, a Paco le explico cómo hacerlo.
También puede valerte ejecutar un simple submit del formulario, pero eso ya no te lo aseguraría.
Saludos
Pregunta como se usa procedure WebAddHTML
Lo intente usar pero me marca error exeption access violation
Hola Edgar
Cuando creas un objeto de tipo TWebControl tienes que pasarle en el constructor un TWebBrowser donde visualizar los datos. Este TWebBrowser tienes que inicializarlo al menos con about:blank ( WebBrowser.Navigate(‘about:blank’); ).
Luego sólo te queda hacer una llamada al método que quieras
Saludos
Gran aporte, gracias por tu tiempo. Saludos