Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser - Kommunikation selbst verrichten (https://www.delphipraxis.net/161013-twebbrowser-kommunikation-selbst-verrichten.html)

Lannes 12. Jun 2011 22:32

AW: TWebBrowser - Kommunikation selbst verrichten
 
genauso ist es.

//Edit: reagieren kann man nur dann, wenn eine Navigation ansteht, in BeforeNavigate

Neotracer 12. Jun 2011 22:42

AW: TWebBrowser - Kommunikation selbst verrichten
 
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".

Thom 12. Jun 2011 22:55

AW: TWebBrowser - Kommunikation selbst verrichten
 
Zitat:

Zitat von Neotracer (Beitrag 1106014)
Ein Proxy fällt schon einmal raus, da es sich um Strukturen handelt, die nicht dem Standard entsprechen [...]

:wiejetzt: Hast Du Dir mal den von mir verlinkten Thread angeschaut? Wahrscheinlich nicht. :zwinker:
Genau das macht nämlich der in dem genannten Thread gepostete Proxy: Jede einzelne Anforderung kann dort weiter- oder umgeleitet, manipuliert oder einfach blockiert werden...

himitsu 12. Jun 2011 23:08

AW: TWebBrowser - Kommunikation selbst verrichten
 
Zitat:

Zitat von Neotracer (Beitrag 1106014)
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.

Würde doch reichen?

> Die seite selber laden und die enthaltenen Verlinkungen, zu Bildern, JS, CSS und Co. ändern.
> Danach werden auch Diese dann von den gewünschten Stellen geholt.

Thom 12. Jun 2011 23:21

AW: TWebBrowser - Kommunikation selbst verrichten
 
@himitsu:

Logisch weitergedacht, könnte die Seite auch gleich so gestaltet werden, daß die Ressourcen von den richtigen Stellen geladen werden.
Denkbar wäre da zum Beispiel der Aufruf von Delphi-Methoden von JavaScript aus.

Aber das war ja nicht die Frage, sondern es ging (geht) darum, wie das Laden einzelner Ressourcen gezielt gesteuert werden kann. Und das kann TWebBrowser leider nicht ohne Hilfe.

Neotracer 12. Jun 2011 23:32

AW: TWebBrowser - Kommunikation selbst verrichten
 
Zitat:

Zitat von himitsu (Beitrag 1106017)
Würde doch reichen?
> Die seite selber laden und die enthaltenen Verlinkungen, zu Bildern, JS, CSS und Co. ändern.
> Danach werden auch Diese dann von den gewünschten Stellen geholt.

Naja. Es reicht nicht die URLS umzuschreiben. Meine gewünschte Stelle ist ein Buffer. :wink:
Soetwas gibt es nicht als URL. Es muss ein Buffer sein, weil nicht alles als URI-Form immer verfügbar ist, da ich auch über andere Protokolle (RPC, Samba) usw. die gewünschten Ressourcen hole.

@Thom:
Hmm. Also du meinst ich starte einen lokalen Proxy und dann gehen alle anfragen durch mich selbst durch?
Hört sich ganz gut an. Muss ich mir mal genauer anschauen, wie das zusammenpasst.
Danke schonmal ^^ :thumb:

Wenn jemand noch andere Vorschläge, immer her damit. :wink:

Thom 12. Jun 2011 23:35

AW: TWebBrowser - Kommunikation selbst verrichten
 
Zitat:

Zitat von Neotracer (Beitrag 1106020)
Also du meinst ich starte einen lokalen Proxy und dann gehen alle anfragen durch mich selbst durch?

Interessant ausgedrückt: Aber Ja - das trifft es! :lol:

Andreas L. 13. Jun 2011 09:10

AW: TWebBrowser - Kommunikation selbst verrichten
 
Den Proxy kann man ganz einfach mit TIdHTTPProxyServer umsetzen. Statt den TWebBrowser würde ich die "verbesserte Variante" TEmbeddedWB ( http://www.bsalsa.com ) nehmen. Dort kannst du auch einstellen das alle Requests auf deinen lokalen Proxy (z. B. über Port 8080) umgeleitet werden.

Thom 13. Jun 2011 11:00

AW: TWebBrowser - Kommunikation selbst verrichten
 
Zitat:

Zitat von Andreas L. (Beitrag 1106052)
Den Proxy kann man ganz einfach mit TIdHTTPProxyServer umsetzen.

Kann man eben leider nicht in der Originalvariante. :zwinker:
Der macht "nur" das, was dem Namen nach seine Aufgabe ist: Die Anfragen entgegennehmen und weiterleiten. Die Eingiffsmöglichkeiten seitens des Programmierers sind sehr beschränkt. Genau aus diesem Grund entstand in einigen Wochen Arbeit die "aufgebohrte" Variante in dem angesprochenen Thread...
Zitat:

Zitat von Andreas L. (Beitrag 1106052)
Dort kannst du auch einstellen das alle Requests auf deinen lokalen Proxy (z. B. über Port 8080) umgeleitet werden..

Kann auch der angesprochenen Proxy... 8-)

Andreas L. 13. Jun 2011 11:51

AW: TWebBrowser - Kommunikation selbst verrichten
 
Zitat:

Zitat von Thom (Beitrag 1106079)
Zitat:

Zitat von Andreas L. (Beitrag 1106052)
Den Proxy kann man ganz einfach mit TIdHTTPProxyServer umsetzen.

Kann man eben leider nicht in der Originalvariante. :zwinker:
Der macht "nur" das, was dem Namen nach seine Aufgabe ist: Die Anfragen entgegennehmen und weiterleiten. Die Eingiffsmöglichkeiten seitens des Programmierers sind sehr beschränkt. Genau aus diesem Grund entstand in einigen Wochen Arbeit die "aufgebohrte" Variante in dem angesprochenen Thread...

Mit den Ereignissen
Code:
IdHTTPProxyServer1HTTPBeforeCommand(AContext: TIdHTTPProxyServerContext);
IdHTTPProxyServer1HTTPDocument(AContext: TIdHTTPProxyServerContext; var VStream: TStream);
geht das sehr wohl. Habe es selber schon benutzt. :wink:

Zitat:

Zitat von Thom (Beitrag 1106079)
Zitat:

Zitat von Andreas L. (Beitrag 1106052)
Dort kannst du auch einstellen das alle Requests auf deinen lokalen Proxy (z. B. über Port 8080) umgeleitet werden..

Kann auch der angesprochenen Proxy... 8-)

Was du mir damit sagen willst verstehe ich nicht :?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.
Seite 2 von 3     12 3      

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