Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Quelltext einer Webpage in Richedit anzeigen (https://www.delphipraxis.net/116945-quelltext-einer-webpage-richedit-anzeigen.html)

simjoh16 9. Jul 2008 06:13


Quelltext einer Webpage in Richedit anzeigen
 
Hallo,

ich möchte den Seitenquelltext einer Webpage in einer Richedit-Komponente anzeigen.

Delphi-Quellcode:
  webbrowser1.Navigate(URL);

  if Assigned(WebBrowser1.Document) then
  begin
    PageBody := (WebBrowser1.Document AS IHTMLDocument2).Body;

    while PageBody.ParentElement <> nil do
      PageBody := PageBody.ParentElement;

    richedit1.Text := PageBody.innerHTML;
  end;
Nachdem webbrowser1.Navigate(link) ausgeführt wurde, ist Assigned(WebBrowser1.Document) aber false, sodass die Richedit1.Text-Zuweisung nicht ausgeführt wird. Was mach ich da falsch? Wenn ich den Code nochmal ausführe, ist Assigned(WebBrowser1.Document) true und die Zuweisung klappt.

Danke.

Matze 9. Jul 2008 06:19

Re: Quelltext einer Webpage in Richedit anzeigen
 
Hallo simjoh16, herzlich Willkommen!

Ich vermute, dass das Dokument noch nicht komplett geladen ist. Versuche mal, den Code zum Auswerten des HTML-Codes ins OnDocumentComplete-Ereignis zu schreiben.

Grüße, Matze

simjoh16 9. Jul 2008 06:32

Re: Quelltext einer Webpage in Richedit anzeigen
 
:bounce2:

Super, klappt, danke.

Jetzt wird der Text aber 3 mal hintereinander angezeigt, also die WebBrowser1DocumentComplete-Prozedur wird 3 mal ausgeführt. ??

mkinzler 9. Jul 2008 06:46

Re: Quelltext einer Webpage in Richedit anzeigen
 
Besteht die Seite aus mehreren Teilen (Frames/IFrames)?

simjoh16 9. Jul 2008 07:14

Re: Quelltext einer Webpage in Richedit anzeigen
 
Nein. Habs schon gelöst, danke.

marabu 9. Jul 2008 07:16

Re: Quelltext einer Webpage in Richedit anzeigen
 
Moin,

in den event handler für das Ereignis OnDocumentComplete() gehört eine Bedingung:

Delphi-Quellcode:
procedure TDemoForm.WebBrowserDocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  with Sender as TWebBrowser do
    if pDisp = DefaultInterface then
    begin
      // ...
    end;
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz