Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi HTML-Code von TMozillaBrowser auslesen (https://www.delphipraxis.net/50465-html-code-von-tmozillabrowser-auslesen.html)

TheXception 26. Jul 2005 08:29


HTML-Code von TMozillaBrowser auslesen
 
Wie kann man den HTML-Code von der TMozillabrowser-Komponente auslesen?

barf00s 26. Jul 2005 08:46

Re: HTML-Code von TMozillaBrowser auslesen
 
hast du deren "eigenschaften & methoden" mal auf eindeutige namen durchsucht die darauf schließen könnten das sie eben den code zurückgeben? (ich glaubes nich)

TheXception 26. Jul 2005 08:54

Re: HTML-Code von TMozillaBrowser auslesen
 
ja hab ich schon aber nichts gefunden.
Es gibt eine Funktion names
Delphi-Quellcode:
GetTextBuf(Buffer:PAnsiChar; BufSize: integer) : integer;
Aber die hat mich auch nicht weitergebracht da kamen nur sonderzeichen.
Vllt hab ich sie auch nur falsch benutzt. Könnte mir da jemand ein Beispiel machen?

barf00s 26. Jul 2005 08:58

Re: HTML-Code von TMozillaBrowser auslesen
 
Delphi-Quellcode:
var
  sResult: string;
  iSize: integer;

begin
  iSize := 8192;
  SetLength(sResult, iSize);
  FillChar(sResult[1], iSize, 0); // nicht unbedingt nötig
  MozillaBrowser1.GetTextBuf(@sResult[1], iSize);
  Memo1.Lines.Text := sResult;
end;

TheXception 26. Jul 2005 09:12

Re: HTML-Code von TMozillaBrowser auslesen
 
Also des gibt keinen HTML-Code zurück. Da muss es doch eine Möglichkeit geben :wall:

barf00s 26. Jul 2005 09:13

Re: HTML-Code von TMozillaBrowser auslesen
 
ich hab kein dunst ob diese funktion GetTextBuf ÜBERHAUPT ne methode von deiner mozillakomponente iss und was sie macht... ~blub~

TheXception 26. Jul 2005 09:20

Re: HTML-Code von TMozillaBrowser auslesen
 
Für alle die auch testen wollen: des Mozilla ActiveX Control gibts hier:
http://www.iol.ie/~locka/mozilla/mozilla.htm
Dort holt ihr euch: Mozilla 1.7.7 ActiveX Control Installer
Ihr könnt es dann über "ActiveX importieren" installieren.

Kidix 26. Jul 2005 09:57

Re: HTML-Code von TMozillaBrowser auslesen
 
Der Code müsste in etwa so lauten


Delphi-Quellcode:
temp := MozillaBrowser1.OleObject.Document.documentElement.innerHTML;
Kidix

barf00s 26. Jul 2005 09:58

Re: HTML-Code von TMozillaBrowser auslesen
 
warum sieht das so nach dem IE WebBrowser aus?

Kedariodakon 26. Jul 2005 10:01

Re: HTML-Code von TMozillaBrowser auslesen
 
Zitat:

Zitat von barf00s
warum sieht das so nach dem IE WebBrowser aus?

hmm Mozilla = IE ??? Skandal :firejump:

Naja eigendlich ist das doch gut.
Wenn die Mozilla Entwickler sich an andere Kompos anlehnen, so steigt ev. schneller einer auf ihre um, ohne das dieser viel Aufwand hat :zwinker:

Bye

Kidix 26. Jul 2005 10:02

Re: HTML-Code von TMozillaBrowser auslesen
 
ja, sie sind vom aufbau her fast gleich...

Delphi-Freak 26. Jul 2005 10:06

Re: HTML-Code von TMozillaBrowser auslesen
 
Hi!
Zu diesem GetTextBuf, das haben so ziemlich viele Objekte (wenn nicht eh fast alle, vielleicht von TWinControl oder TControl oder so abgeleitet...), das ist nicht eine eigene Eigenschaft von TMozillaBrowser.

LG

Kidix 26. Jul 2005 10:08

Re: HTML-Code von TMozillaBrowser auslesen
 
Zitat:

Zitat von Delphi-Freak
Hi!
Zu diesem GetTextBuf, das haben so ziemlich viele Objekte (wenn nicht eh fast alle, vielleicht von TWinControl oder TControl oder so abgeleitet...), das ist nicht eine eigene Eigenschaft von TMozillaBrowser.

LG

hat das jemand gesagt?

Delphi-Freak 26. Jul 2005 10:13

Re: HTML-Code von TMozillaBrowser auslesen
 
Direkt behauptet nicht. Aber es wurde bezweifelt:
Zitat:

Zitat von barf00s
ich hab kein dunst ob diese funktion GetTextBuf ÜBERHAUPT ne methode von deiner mozillakomponente iss und was sie macht... ~blub~

LG

TheXception 26. Jul 2005 10:55

Zitat:

Zitat von Kidix
Der Code müsste in etwa so lauten


Delphi-Quellcode:
temp := MozillaBrowser1.OleObject.Document.documentElement.innerHTML;
Kidix

so gehts net hatte ich auch schon probiert. Er bringt immer das er das objekt nicht unterstützt. (documentElement)

Kidix 26. Jul 2005 11:05

Re: HTML-Code von TMozillaBrowser auslesen
 
könnte sein, dass es bei dir ein bischen anders heißt, bei mir mozilla 1.4 funktionierts!

TheXception 26. Jul 2005 11:47

Re: HTML-Code von TMozillaBrowser auslesen
 
Kannst du mir mal des was bei dir funktioniert mal schicken oder als anhang machen?

Kidix 26. Jul 2005 11:58

Re: HTML-Code von TMozillaBrowser auslesen
 
Hier der Quelltext eines Testprojektes:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, MOZILLACONTROLLib_TLB;

type
  TForm1 = class(TForm)
    browser1: TMozillaBrowser;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMEssage(Browser1.OleObject.Document.documentElement.innerHTML);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
browser1.Navigate('http://www.yeho.de');
end;

end.

TheXception 26. Jul 2005 12:02

Re: HTML-Code von TMozillaBrowser auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich krieg hier immer diese Meldung. (siehe Anhang)

barf00s 26. Jul 2005 12:05

Re: HTML-Code von TMozillaBrowser auslesen
 
dann brauchst natürlich auch SEINE ActiveX version dieser komischen mozillakomponente

Kidix 26. Jul 2005 12:10

Re: HTML-Code von TMozillaBrowser auslesen
 
brauchst du den quelltext in nem string?

TheXception 26. Jul 2005 12:19

Re: HTML-Code von TMozillaBrowser auslesen
 
Also ich hab jetzt eine Möglichkeit gefunden.
da es sicher uach andere interessiert mach ich hier mal eine kleine Beschreibung:

1.Ihr geht in Delhpi auf Projekt --> Typbibliothek importieren. Dort sucht ihr nach: "Microsoft HTML Object Library" und klickt auf "Unit anlegen". (das kann ne weile dauern es scheint als habe sich Delphi aufgehängt einfach warten, dauert ne Weile)

2.Dann macht ihr folgendes:
Delphi-Quellcode:
uses MSHTML_TLB;
3.Nun kann man mit folgendem dem Quellcode anzeigen lassen:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var s: string;
begin
s:=(MozillaBrowser1.Document as IHTMLDocument2).body.innerHTML; //hier gibts noch mehr Eigenschaften einfach ausprobiern
Memo1.lines.Clear;
Memo1.Lines.Add(s);
end;

Fertig! Danke noch an alle.

dahead 26. Jul 2005 12:30

Re: HTML-Code von TMozillaBrowser auslesen
 
wenn man firebird/mozilla mit diesem active-x plugin ausrüstet ist er genauso angreifbar wie der ie.
was soll das bringen?

TheXception 26. Jul 2005 12:34

Re: HTML-Code von TMozillaBrowser auslesen
 
Achtung! Dieses ActiveX-Control ist nicht Firefox/Firebird da es seine Eigenen Bibliotheken besitzt und nicht auf Firefox zugreift.
D.h. derjenige der einsolches Programm laufen lassen will muss sich auch das mozilla activex control herunterladen und installieren. Es ist völlig unabhängig von Firefox.

Olli 4. Aug 2005 18:33

Re: HTML-Code von TMozillaBrowser auslesen
 
Zu der Frage mit der IE-Ähnlichkeit: Es ist ja gerade Ziel dieses Projektes, mit dem IE-ActiveX-Control kompatibel zu sein. Dadurch kann man mehrere Sachen erreichen:
1. Wie Netscape 8 ein Zwitterinterface (sowohl IE als auch Gecko läuft)
2. Einfache Migration

holodoktor 10. Mai 2006 18:02

Re: HTML-Code von TMozillaBrowser auslesen
 
:thumb: Hallo zusammen,

auch wenn dieses Thema schon etwas angestaubt ist, will ich meinen Dank an TheXception dafür aussprechen, dass er den Hinweis mit der Microsoft-Bibliothek herausgefunden und gepostet hat. Genau dieser Punkt verhilft dem Mozilla ActiveX Control auch in Visual Basic zum Funktionieren. Ich habe jetzt ca. 2 Tage das Netz durchsucht und allenfalls offene Fragen zu diesem Thema gefunden. Dies ist der erste Treffer, der einen erfolgreichen Zugriff auf den DOM-Baum beschreibt.

Vielen Dank nochmal!

holodoktor

jamma-markus 26. Mai 2006 15:55

Re: HTML-Code von TMozillaBrowser auslesen
 
hallo zusammen,

ich habe wie oben beschrieben die MSHTML_TLB erzeugt und dann in der uses-klausel eingebunden. nun schmiert mein delphi aber bei jedem compilieren ab :-( was soll ich machen?

bizzl 21. Jun 2006 08:31

Re: HTML-Code von TMozillaBrowser auslesen
 
Sry für die späte Antwort.
Was für eine Meldung gibt er beim Compilieren aus?
Oder haut es ihn einfach nur um?

Glocke89 6. Okt 2008 17:19

Re: HTML-Code von TMozillaBrowser auslesen
 
Hallo!
ich befasse mich gerade auch mit TMozillaBrowser und habe folgendes Problem:
die Seite deren Quellcode ich auslesen will besteht aus Frames. Wie kann ich auf die einzelnen Frames zugreifen?

Bei dem hier kommt die Fehlermeldung "Nicht implementiert"
Delphi-Quellcode:
var
  s: string;
  ole_index: OleVariant;
begin
  ole_index := 0;
  s := (MozillaBrowser1.Document as IHTMLDocument2).frames.item(ole_index).document.body.innerHTML;
  Memo1.Lines.Clear;
  Memo1.Lines.Add(s);

Jakob Ullmann 6. Okt 2008 18:29

Re: HTML-Code von TMozillaBrowser auslesen
 
Stichwort: MathML, das wird vom MozillaActiveX Control besser gerendert als von Firefox (z. B. bei Wurzeln).
Ansonsten benutzt das aber wie Firefox die Gecko-Engine (Apropos: ich glaub das MozillaActiveX-Control wird automatisch installiert, wenn man Netscape installiert, weiß auch nicht warum ich das gemacht hab :| )


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