![]() |
TWebBrowser - Kommunikation selbst verrichten
Hallo DP-Gemeine,
ich möchte die TWebBrowser Komponente benutzen, allerdings möchte ich mich um die Internet-Kommunikation selbst kümmern. Wenn also eine URL angefragt wird, dann sollte das meiner Unit übergeben werden und diese kümmert sich darum diese mit eigenen HTTP-Routinen usw. aufzurufen. Die Antwort will ich der Komponente dann auch wieder selbst übergeben. Das ist nötig, weil oftmals Umwege (nicht direkt ans Internet angeschlossen) gemacht werden müssen. Und manchmal auch nur auf Offline-Caches zugegriffen wird nach meinem eigenen System. Dabei ergibt sich noch eine besondere Schwierigkeit. Denn es reicht nicht, einfach nur beispielsweise den HTML-Code von delphipraxis.net zu übergeben und TwebBrowser macht den Rest, weil beispielsweise andere Ressourcen innerhalb der HTML (Bilder, CSS usw.) auch wieder aus dem Internet geladen werden müssen. Ich brauche also so etwas wie ein Callback für jede URL (auch Bilder, CSS), die aufgerufen wird, damit ich das selber handhaben kann. Weiss jemand wie das zu bewerkstelligen wäre? Wenn ja, wie geht es? Danke schonmal |
AW: TWebBrowser - Kommunikation selbst verrichten
Als erstes würde mir IdHTTP von Indy einfallen.
|
AW: TWebBrowser - Kommunikation selbst verrichten
Zitat:
Ich brauche im Prinzip nur einen HTML-Interpreter, der den HTML Code schön anzeigt und mir jedesmal sagt, was er aus dem Internet braucht, wenn er gerade auf ein Bild stößt oder eine CSS Datei. Er soll es auf keinen Fall selber herunterladen. Verstehst du was ich meine? |
AW: TWebBrowser - Kommunikation selbst verrichten
Wenn in keinem Fall irgendwas heruntergeladen werden soll, brauchst du nicht nur einen HTML- sondern auch einen CSS-, JavaScript- ... etc.-Interpreter.
|
AW: TWebBrowser - Kommunikation selbst verrichten
Zitat:
Intern läuft das ja so: Es wird zunächst nur EINE URL geholt: ![]() Beim Interpretieren stellt der Browser fest, dass dort auf noch mehr URLs verwiesen wird. Ein Bild, JS-Script, CSS oder HTML in Frames. Er findet beispielsweise raus, dass er diese URL braucht um die Seite anzuzeigen: ![]() Mir soll der Interpreter (der ja schon alles kann) einfach alle URLS geben, die er findet, und ich lade diese für ihn runter und übergebe das als Buffer. Sei das ein BILD, ein JS-Script, ein Stylesheet. Völlig egal. Er soll eben nur nicht selbstständig das Bild runterladen. Ich brauche also eine Art Callback. Sowas: function GetRessource(URL: String; var outbuffer: Pointer; var len: Integer): Boolean; begin // Ich besorge das Bild, HTML oder JS-Sript.. Whatever end; Kann ich das irgendwie mit TWebBrowser einrichten? Wenn ja, wie? Hoffe das ist jetzt verständlich. |
AW: TWebBrowser - Kommunikation selbst verrichten
Wie wär's mit einem
![]() |
AW: TWebBrowser - Kommunikation selbst verrichten
Man braucht nichtmal einen richtigen Proxy.
TWebBrowser sollte doch IMHO schon die Schnittstellen bieten, um URLs umzuleiten. |
AW: TWebBrowser - Kommunikation selbst verrichten
Zitat:
|
AW: TWebBrowser - Kommunikation selbst verrichten
Nicht im Kopf.
Aber es gab mindestens 1 oder 2 Ereignissmethoden, welche vor dem Laden von Dateien, aufgerufen werden und ich glaube mich zu erinnern, daß man in einer davon die URL manipulieren konnte. |
AW: TWebBrowser - Kommunikation selbst verrichten
Leider mit Einschränkungen: Diese Methoden werden - zumindest so weit mir bekannt ist - nicht bei jedem einzelnen Element, das die Seite enthält, aufgerufen.
Aber ich laß mich gern eines Besseren belehren. :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz