Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WebBrowser: Automatische Weiterleitung verhindern? (https://www.delphipraxis.net/68027-webbrowser-automatische-weiterleitung-verhindern.html)

dizzler 23. Apr 2006 17:24


WebBrowser: Automatische Weiterleitung verhindern?
 
Hi Leute,
ich bin neu angemeldet hier in der Delphi-Praxis und muss euch direkt mit meiner ersten Frage quälen *g*
Ich besuche die Seite mitlerweile schon regelmäßig und das auch schon seit Monaten, deswegen dachte ich mir, dass ich hier mit meinen Problemchen am besten aufgehoben bin ;-)

Folgendes Problem:

Auf der Website die ich aufrufen möchte ist folgender Code:
Zitat:

<script language=JavaScript> if (parent.frames.length == 0) { top.frames.location.href = "http://www.irgendeineadresse.de/"; } </script>
parent.frames.length gibt, so glaube ich, an, wie viele Frames zusätzlich zum Aktuellen existieren.
Jetzt will ich diese allerdings nicht in meinen WebBrowser laden - somit fällt der Vergleich "parent.frames.length = 0 ??" positiv aus und ich werde deshalb immer zu einer sinnlosen Seite weitergeleitet.

Hat einer von euch eine Idee, wie ich diese Weiterleitung verhindern kann? Ich dachte mir schon, dass ich in der "WebBrowser.OnDocumentComplete" einfach den Quelltext editiere... allerdings wird der Code (die Weiterleitung) schon vorher ausgeführt :]

Danke im voraus :-)


mfg.
dizzler

fkerber 23. Apr 2006 22:47

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Hi!

Bei den Indys (IdHttp) gibt es ein Event onRedirect.
Damit sollte das eigentlich gehen...
Vielleicht bietet sich dir ja die Mögluchkeit für einen Umstieg.


Ciao Frederic

marabu 24. Apr 2006 08:14

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Herzlich willkommen in der Delphi-PRAXiS, dizzler.

Du kannst die Ausführung von Script-Code vorübergehend deaktivieren. Wenn deine Anwendung die Schnittstelle IDocHostUIHandler implementiert, dann kannst du in der Methode GetHostInfo() das Flag DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE setzen. Für dich am einfachsten ist es wahrscheinlich, wenn du die Komponente TEmbeddedWebBrowser installierst. Diese stellt dir die Eigenschaft UserInterfaceOptions zur Verfügung, über welche du die entsprechende Einstellung im Object Inspector vornehmen kannst.

Freundliche Grüße vom marabu

dizzler 24. Apr 2006 20:15

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Mir wäre eine Lösung für den "normalen" TWebBrowser viel lieber, da ich schon einiges in das Programm geschrieben habe - und das alles auf die WebBrowser-Komponente zugreift. Diese Arbeit möchte ich nur sehr sehr ungerne zu nichte machen :|

alias5000 24. Apr 2006 20:22

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Der TEmbeddedWB ist ein Nachfahre vom TWebbrowser. Somit kannst du ihn problemlos anstatt des TWebbrowser einsetzen.
Suche danach am besten mal bei www.torry.net

Gruß alias5000

marabu 24. Apr 2006 20:25

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Das ist noch kein Ausschlusskriterium für den EmbeddedWebBrowser. Du kannst in den Quelltexten deiner Forms einfach den Typ TWebBrowser durch TEmbeddedWebBrowser ersetzen und in der zugehörigen Unit die Unit EmbeddedWB der USES Klausel im interface Abschnitt hinzufügen. Mehr Aufwand sollte es eigentlich nicht sein.

marabu

dizzler 24. Apr 2006 22:10

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Ich habe das Flag jetzt gesetzt und den EmbeddedWB benutzt. Allerdings ist die Weiterleitung dadurch noch nicht behoben :|

marabu 25. Apr 2006 07:32

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Hast du mal geprüft, ob die Weiterleitung wirklich durch ein Script ausgelöst wird? Lass dir doch mal eine Alert-Box ausgeben - erscheint diese, dann ist die Script-Ausführung nicht deaktiviert worden, erscheint diese nicht, dann ist ein anderer Weiterleitungsmechanismus wirksam.

marabu

dizzler 25. Apr 2006 13:01

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
Habe es eben noch einmal mit einer Test-Seite probiert. Ich lies mir, so wie du meintest, eine Alert-MessageBox anzeigen. Dann habe ich unter "User Interface Options" den Eintrag "DISABLE_SCRIPT_INACTIVE" auf true gesetzt - trotzdem wird die MessageBox noch angezeigt. Sehr seltsam. :/

/*edit:
Kann dies auf eine Fehlerhafte Installation zurückzuführen sein? Denn ich musste noch 5 *.dcu Dateien in mein Projekt-Verzeichnis kopieren, damit ich den EmbeddedWB überhaupt benutzen konnte...

/*edit:
Ups, das "Problem" mit den *.dcu Dateien lag darin, dass ich einen Übergeordneten Ordner als Library-Path angegeben hatte :D

dizzler 27. Apr 2006 18:55

Re: WebBrowser: Automatische Weiterleitung verhindern?
 
*PUSH*

Es scheint so, als würde keine einzige "UserInterfaceOption" funktionieren... habe mehrere getestet... ohne Erfolg.

Woran kann das liegen, dass diese Optionen bei mir nicht gehen?
Bzw. kann ich mein Problem evtl. auch noch anders (auch wenn es nicht so "schön" ist) lösen?


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