AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebBrowser - Kommunikation selbst verrichten
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser - Kommunikation selbst verrichten

Ein Thema von Neotracer · begonnen am 12. Jun 2011 · letzter Beitrag vom 14. Jun 2011
Antwort Antwort
Seite 1 von 3  1 23      
Neotracer

Registriert seit: 14. Jul 2010
17 Beiträge
 
Delphi 7 Personal
 
#1

TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 14:15
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
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 17:51
Als erstes würde mir IdHTTP von Indy einfallen.
  Mit Zitat antworten Zitat
Neotracer

Registriert seit: 14. Jul 2010
17 Beiträge
 
Delphi 7 Personal
 
#3

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 19:23
Als erstes würde mir IdHTTP von Indy einfallen.
Nun ja. IdHTTP holt ja nur eine bestimmte HTML Seite aus dem Internet. Aber das kann ich ja schon, und bewerkstellige das auf verschiedene Weisen.
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?
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 20:10
Wenn in keinem Fall irgendwas heruntergeladen werden soll, brauchst du nicht nur einen HTML- sondern auch einen CSS-, JavaScript- ... etc.-Interpreter.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Neotracer

Registriert seit: 14. Jul 2010
17 Beiträge
 
Delphi 7 Personal
 
#5

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 20:21
Wenn in keinem Fall irgendwas heruntergeladen werden soll, brauchst du nicht nur einen HTML- sondern auch einen CSS-, JavaScript- ... etc.-Interpreter.
TWebBrowser kann doch schon alles, oder? Ich kann damit wunderbar surfen. JS und CSS geht. Wird also alles interpretiert.
Intern läuft das ja so:

Es wird zunächst nur EINE URL geholt:

http://example.de/index.php

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:

http://example.de/Bild1.jpg

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.

Geändert von Neotracer (12. Jun 2011 um 20:24 Uhr)
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#6

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 20:33
Wie wär's mit einem Proxy?
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 22:48
Man braucht nichtmal einen richtigen Proxy.
TWebBrowser sollte doch IMHO schon die Schnittstellen bieten, um URLs umzuleiten.
$2B or not $2B
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#8

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 23:03
Man braucht nichtmal einen richtigen Proxy.
TWebBrowser sollte doch IMHO schon die Schnittstellen bieten, um URLs umzuleiten.
Wenn Du dafür eine Lösung hast, laß hören...
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 23:08
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#10

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 23:19
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.
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 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