Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Aktuellen (!) Quellcode aus dem TWebBrowser lesen (https://www.delphipraxis.net/112372-aktuellen-quellcode-aus-dem-twebbrowser-lesen.html)

JayRZay 19. Apr 2008 23:21


Aktuellen (!) Quellcode aus dem TWebBrowser lesen
 
Hallo mal wieder.

Ich habe folgendes Problem: Ich würde gerne aus einem Onlinechat automatisch Gespräche loggen, über die Komponente TWebBrowser wenn möglich. Wie man prinzipiell an den Quellcode kommt, weiß ich, allerdings scheint es nicht der Quellcode des angezeigten Webinhalts zu sein (dem laufenden Chatgespräch also) sondern der von einem neu gestarteten Aufruf der URL, denn er enthält wieder nur die Daten des Login-Fomulars.

Ich weiß nicht, ob das überhaupt realisierbar ist (mit den Möglichkeiten, die TWebBrowser zur Verfügung stellt), aber ich hätte gerne den Text, der sich ergeben würde, wenn ich im IE rechtsklicke und "Quelltext anzeigen" wähle - denn das enthält durchaus die laufenden Gespräche, die im aktuellen Fenster sind.

Danke für jede Hilfe,

Jay

toms 20. Apr 2008 06:00

Re: Aktuellen (!) Quellcode aus dem TWebBrowser lesen
 
Hallo,

Wie liest du denn momentan den Quelltext aus?
Beinhaltet die Seite evtl Frames?

JayRZay 20. Apr 2008 10:13

Re: Aktuellen (!) Quellcode aus dem TWebBrowser lesen
 
Ich habe zwei Codes drin, das mit den Frames stimmt und ist auch noch nicht gelöst, aber, glaube ich jedenfalls, nicht das Hauptproblem.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  PageDoc  : IHTMLDocument2;
  PageBody : IHTMLElement;
  PageText : WideString;
begin
  if not VarIsEmpty(WebBrowser1.Document) then
    begin
      PageDoc := WebBrowser1.Document as IHTMlDocument2;
      PageBody := PageDoc.Get_body;
      PageText := PageBody.innerHTML;
      Memo1.Text := PageText;
    end;
end;
und

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var PageBody : IHTMLElement;
begin
  if Assigned(WebBrowser1.Document) then
  begin
    PageBody := (WebBrowser1.Document AS IHTMLDocument2).Body;

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

  Memo1.Text := PageBody.innerHTML;
  end;
Danke :)

Leo0385 30. Mai 2008 14:17

Re: Aktuellen (!) Quellcode aus dem TWebBrowser lesen
 
Ich beschäftige mich auch zZt. ein wenig mit WebBrowser1
Das mit dem HTML-Quelltext ist ja wunderschön - klappt auch prima

Aber was macht man bei Frames... und ACHTUNG:
"Wenn der betr. Frame von einem fremden Host kommt"??

WebBrowser1.OleObject.Document.Frames.Item(0).Docu ment.Body.OuterHtml

Dann nämlich ist der Kontainer leer :( (bzw. es kommt zum Fehler)


Hat dafür vllt. jmd. eine Lösung?


Gruß
Leo

Bernhard Geyer 30. Mai 2008 14:28

Re: Aktuellen (!) Quellcode aus dem TWebBrowser lesen
 
Zitat:

Zitat von Leo0385
Aber was macht man bei Frames... und ACHTUNG:
"Wenn der betr. Frame von einem fremden Host kommt"??

Ich könnte mir vorstellen das dies "As Designed" ist um X-Side-Scrippting-Angriff zu verhindern (Lade Bankseite in Frame von http://www.böse-seite.com). Denn wenn du das kannst, kann das auch per Javascript von Hackerseite erfolgen.


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