Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   Ejecutar repetidamente un script en TWebBrowser (https://www.clubdelphi.com/foros/showthread.php?t=82321)

PacoPepe 22-02-2013 19:33:35

Ejecutar repetidamente un script en TWebBrowser
 
Quiero obtener información de una página web que dispone de un script en JavaScript

Cargo la página con TWebBrowser, monto la URL correcta y la paso con Navigate. Luego genera una tabla HTML y con una función que he encontrado obtengo la información que contiene

¿Pero como hago para saber cuando ha cargado la página totalmente, para pasarle después la URL? y como vuelvo a cargar la segunda vez la página, ya que la primera lo hago con Show, pero la segunda he probado con Update y Refresh pero no he obtenido nada

Un saludo ^\||/

beginner01 23-02-2013 01:46:58

Hola.

Cita:

Empezado por PacoPepe (Mensaje 455431)
¿Pero como hago para saber cuando ha cargado la página totalmente, para pasarle después la URL?

Para saberlo usa el evento OnDocumentComplete del TWebBrowser. Referencia.

Cita:

y como vuelvo a cargar la segunda vez la página, ya que la primera lo hago con Show, pero la segunda he probado con Update y Refresh pero no he obtenido nada
Esto no me queda muy claro. Revisa los eventos del TWebBrowser ,que seguro encontraras lo que necesitas.

PacoPepe 23-02-2013 13:51:58

Ya lo he conseguido

La función para leer los datos de la tabla HTML es

Código Delphi [-]
ovTable:= WebBrowser1.OleObject.Document.all.tags('TABLE').item(0);
      try
        if not VarIsNull(ovTable) then begin
            for i := 1 to (ovTable.Rows.Length - 1) do
                for j := 0 to (ovTable.Rows.Item(i).Cells.Length - 1) do begin
                  try
                      Memo1.Lines.Append(ovTable.Rows.Item(i).Cells.Item(j).InnerText);
                  except end;
                end;
        end;
      except  end;

Suponiendo que tenemos WebBrowser1 y añadimos los datos leidos al Memo1.
He añadido control de excepciones por si algo falla que siga a la siguiente.

i empieza en 1 porque en mi caso la tabla tiene cabecera y no la necesito, sino i:= 0

Para esperar a que termine de cargar la página completamente

Código Delphi [-]
WebBrowser1.Navigate(URL);
while WebBrowser1.ReadyState < READYSTATE_COMPLETE do
        Application.ProcessMessages;

Un saludo a todos


La franja horaria es GMT +2. Ahora son las 07:41:20.

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