Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser - Download verhindern (https://www.delphipraxis.net/97993-twebbrowser-download-verhindern.html)

J.P. 20. Aug 2007 11:24


TWebBrowser - Download verhindern
 
Hallo Leute!

Ich hab da eine frage, wie kann man bei der TWEbBrowser komponente verhindern, dass ein download nach dem klicken auf einen direkt link startet?

Oder kann man es so einrichten, dass der Browser immer auf einer bestimmten seite bleibt, und egal was der user macht, es auch weiterhin bleibt?

Schonmal danke für eure Antworten :)

arbu man 20. Aug 2007 11:27

Re: TWebBrowser - Download verhindern
 
Wie wärs mit dem Ereignis OnNavigate ?

mfg, Björn

J.P. 20. Aug 2007 12:39

Re: TWebBrowser - Download verhindern
 
Ich hab grad geguckt, das gibt es bei mir nicht.
Es gibt nur onBeforeNavigate
und onNavigateComplete.

ich hab das jetzt mal mit onBeforeNavigate ausprobiert, aber es kommt ein Stack-überlauf...

Ich hab in OnBeforeNavigate geschrieben:

if not url = 'http://XXXXXXX.de:8010' then
webbrowser1.navigate('http://XXXXXXX.de:8010');

hmmm. eigentlich dürfte das doch nicht passieren, oder?


Danke schonmal für die antwort.

Klaus01 20. Aug 2007 13:02

Re: TWebBrowser - Download verhindern
 
Zitat:

Zitat von J.P.
Ich hab grad geguckt, das gibt es bei mir nicht.
Es gibt nur onBeforeNavigate
und onNavigateComplete.

ich hab das jetzt mal mit onBeforeNavigate ausprobiert, aber es kommt ein Stack-überlauf...

Ich hab in OnBeforeNavigate geschrieben:

if not url = 'http://XXXXXXX.de:8010' then
webbrowser1.navigate('http://XXXXXXX.de:8010');

hmmm. eigentlich dürfte das doch nicht passieren, oder?


Danke schonmal für die antwort.

Das ist doch recht eindeutig, das ein Stacküberlauf verursacht wird.
im OnBeforeNavigate rufst Du Navigate(...) auf welches wieder ein Ereignis onBeforeNavigate auslöst
welches dann wieder navigate aufruft ...

Grüße
Klaus

MaBuSE 20. Aug 2007 13:09

Re: TWebBrowser - Download verhindern
 
Zitat:

Zitat von J.P.
ich hab das jetzt mal mit onBeforeNavigate ausprobiert, aber es kommt ein Stack-überlauf...
Ich hab in OnBeforeNavigate geschrieben:
Delphi-Quellcode:
if not url = 'http://XXXXXXX.de:8010' then
 webbrowser1.navigate('http://XXXXXXX.de:8010');
hmmm. eigentlich dürfte das doch nicht passieren, oder?

Du rufst in OnBeforeNavigate wieder Navigate auf. Das vorherige Navigate (Klick auf Link) ist noch nicht ganz abgearbeitet. Das dürfte das Problem sein.
Du hast eine Schleife gebaut. Das wird immer wieder aufgerufen, bis es einen "Stack overflow" gibt (also die maximale Verschachtelungstiefe erreicht ist.)

[edit]Warum kam eigentlich keine roter Kasten :gruebel:
Doppelpost darf gerne von Mod gelöscht werden.[/edit]

J.P. 20. Aug 2007 14:52

Re: TWebBrowser - Download verhindern
 
wie könnte ich das denn jetzt am elegantesten lösen?
einen boolean wert dort einstellen und dann an einer anderen stelle abfragen?

Phoenix 20. Aug 2007 14:57

Re: TWebBrowser - Download verhindern
 
Hrm. Hat das OnBeforeNavigate Event denn keinen Var-Parameter mit dem man den Aufruf abbrechen kann (Cancel)?

MCXSC 20. Aug 2007 18:43

Re: TWebBrowser - Download verhindern
 
Wie wäre es mit:

Delphi-Quellcode:
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if URL <> 'http://www.google.de/' then Cancel := True;
end;

Phoenix 20. Aug 2007 19:02

Re: TWebBrowser - Download verhindern
 
Aua.

Also WENN dann:
Delphi-Quellcode:
Cancel := URL <> 'http://www.google.de/'

MCXSC 20. Aug 2007 19:09

Re: TWebBrowser - Download verhindern
 
Zitat:

Zitat von Phoenix
Aua.

Also WENN dann:
Delphi-Quellcode:
Cancel := URL <> 'http://www.google.de/'

Oder so... ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.
Seite 1 von 2  1 2      

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