Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Chromium embedded html sourcecode bekommen fpcef3 (https://www.delphipraxis.net/195252-chromium-embedded-html-sourcecode-bekommen-fpcef3.html)

Julian M. 14. Feb 2018 20:49

Chromium embedded html sourcecode bekommen fpcef3
 
Hallo,
zunächst an die Moderatoren: Bin mir nicht sicher, ob es hierhin gehört, oder doch eher ins Lazarus Unterforum. Sorry, wenns falsch ist!

Es geht um einen eingebetteten Chrome-Browser, welchen ich mir nach dieser Anleitung installiert habe:
http://lazplanet.blogspot.de/2015/09...tes-using.html

Es funktioniert alles wunderbar, ich würde nur gerne den html-Quelltext des Browsers in eine Variable (z.B. Stringlist) geschrieben bekommen.
Leider klappt das nicht.
Eine Anzeige des html-Quelltextes im extern öffnenden notepad ist einfach möglich mit
Delphi-Quellcode:
chromium.Browser.MainFrame.ViewSource;
Nun gibt es noch die prozedur getsource. leider blicke ich da im moment nicht durch.
man findet dazu auch einige sachen per google, leider hab ich es noch nicht zum laufen bekommen.
am interessantesten finde ich diesen beitrag:
https://stackoverflow.com/questions/...omium-embedded

dort gibt es zwei varianten, die einfache variante mit frame.Source gibt es in meiner version leider nicht,
die Prozedur GetSource benötigt einen CefStringVisitor, ich habe nur keine Ahnung was das sein soll.

Wie komme ich an den html quelltext? Kann doch eigentlich nicht so schwer sein :?

Danke an jeden, der sich das durchliest und zumindest versucht mir zu helfen.

LG Julian

Rollo62 14. Feb 2018 20:54

AW: Chromium embedded html sourcecode bekommen fpcef3
 
fpCEF3 kenne ich jetzt nicht, abber vielleicht hilft dir das DCef3 oder DCef4 Projekt weiter.

Julian M. 14. Feb 2018 21:37

AW: Chromium embedded html sourcecode bekommen fpcef3
 
@Rollo62: Danke!



Habs hinbekommen / eine funktionierende Version gefunden :-D

falls es Jemand mal braucht:

Delphi-Quellcode:

procedure CallbackGetSource(const src: ustring);   // CallbackGetSource is fired after the end of ChromiumLoadEnd procedure
begin
  Form1.memo1.text := src; //HTML page code is in src
end;      


procedure TForm1.ChromiumLoadEnd(Sender: TObject; const Browser: ICefBrowser;
  const Frame: ICefFrame; httpStatusCode: Integer);
begin
  chromium.Browser.MainFrame.GetSourceProc(@CallbackGetSource);
end;
Man gibt also einfach einen Pointer zu einer beliebigen Prozedur an, welche dann aufgerufen wird und den html-Quelltext als String übergeben bekommt.
Das ganze logischerweise in der ChromiumLoadend-Prozedur, welche aufgerufen wird, wenn die Webseite fertig geladen ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:12 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