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
Neotracer

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

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 19: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 19:24 Uhr)
  Mit Zitat antworten Zitat
Thom

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

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 19: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.400 Beiträge
 
Delphi 12 Athens
 
#3

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 21:48
Man braucht nichtmal einen richtigen Proxy.
TWebBrowser sollte doch IMHO schon die Schnittstellen bieten, um URLs umzuleiten.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Thom

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

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 22: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.400 Beiträge
 
Delphi 12 Athens
 
#5

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 22: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.
Ein Therapeut entspricht 1024 Gigapeut.
  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, 22: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
Benutzerbild von Lannes
Lannes

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

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 22:32
genauso ist es.

//Edit: reagieren kann man nur dann, wenn eine Navigation ansteht, in BeforeNavigate
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )

Geändert von Lannes (12. Jun 2011 um 22:40 Uhr)
  Mit Zitat antworten Zitat
Neotracer

Registriert seit: 13. Jul 2010
17 Beiträge
 
Delphi 7 Personal
 
#8

AW: TWebBrowser - Kommunikation selbst verrichten

  Alt 12. Jun 2011, 22:42
Hey, danke für eure Überlegungen.

Ein Proxy fällt schon einmal raus, da es sich um Strukturen handelt, die nicht dem Standard entsprechen; manchmal auch um Zugriffe auf eigens entwickelte Offline-Datenbanken aus dem die Daten dann kommen. Jedenfalls stellt das ja alles kein Problem da. Ich kann die Daten ja liefern.
Nur will ich das Rad nicht neu erfinden und das komplette Rendern von HTML und CSS Features nochmals entwickeln.

@himitsu:
Wenn du BeforeNavigate meinst, dann ist das ungeeignet. Es lädt die komplette Seiten mit allen Unter-URLs. Ich kann also nur die AnfangsURL abfangen. Aber wenn Bilder, Frames, CSS, oder JS-Dateien darin sind, dann werden diese selbst geladen ohne ein Ereignis zu feuern.
(Das was Thom schon sagte)

Wenn ich durch die Sources schaue, dann lande ich irgendwann bei Interfaces für OLE-Kram.
Wird schwer sein, da nen Callback einzurichten ohne sich da "reinzuhacken".
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:46 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