Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi EmbeddedWB soll offline bleiben (https://www.delphipraxis.net/154702-embeddedwb-soll-offline-bleiben.html)

vergessen 21. Sep 2010 18:05

EmbeddedWB soll offline bleiben
 
Zum Anzeigen lokaler HTML-Dateien, in denen Flash-Kram integriert ist, benutze ich einen EmbeddedWB, bei dem ich im OI alle Eigenschaften, die nach "online-gehen-dürfen" aussehen, disabled habe.

Klicke ich dann beim Anzeigen einer lokalen HTML-Datei auf einen Link im Flash-Kram, ploppt der IE in einem neuen Fenster auf und ist online auf dem Link des Flash-Krams :-(

Wie kann ich das verhindern? Welches Ereignis muß/könnte ich ggfs wie abfangen? Geht das überhaupt?

TIA

Andreas L. 21. Sep 2010 19:15

AW: EmbeddedWB soll offline bleiben
 
Bin mir nicht ganz sicher, aber ich glaube du kannst im Ereignis OnNavigate oder OnBeforeNavigate den Vorgang abbrechen.
Also irgendwie
Delphi-Quellcode:
ACancel := True;

vergessen 21. Sep 2010 20:29

AW: EmbeddedWB soll offline bleiben
 
Zitat:

Zitat von Andreas L. (Beitrag 1051080)
Bin mir nicht ganz sicher, aber ich glaube du kannst im Ereignis OnNavigate oder OnBeforeNavigate den Vorgang abbrechen.
Also irgendwie
Delphi-Quellcode:
ACancel := True;

Danke, werd' ich mal testen!

Andreas L. 22. Sep 2010 09:35

AW: EmbeddedWB soll offline bleiben
 
Hab' nachgeschaut:

Delphi-Quellcode:
procedure TForm7.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  Cancel := True;
end;
;-)

himitsu 22. Sep 2010 09:43

AW: EmbeddedWB soll offline bleiben
 
Sicher daß es so funktioniert, wenn du alles blockst,
oder sollen garkeine Links aufrufbar sein?

Ansonsten müßte man wohl noch URL prüfen, ob diese zu einer externen Seite führt und dann dementsprechend Cancel setzen.
Und eventuell auch noch den TargetFrameName prüfen, ob im EmbeddedWB eine Seite/Frame mit diesem Namen existiert und wenn nicht, dann dieses auf einen Standardwert setzen.

Andreas L. 22. Sep 2010 10:26

AW: EmbeddedWB soll offline bleiben
 
Zitat:

Zitat von himitsu (Beitrag 1051170)
Sicher daß es so funktioniert, wenn du alles blockst,
oder sollen garkeine Links aufrufbar sein?

Ansonsten müßte man wohl noch URL prüfen, ob diese zu einer externen Seite führt und dann dementsprechend Cancel setzen.
Und eventuell auch noch den TargetFrameName prüfen, ob im EmbeddedWB eine Seite/Frame mit diesem Namen existiert und wenn nicht, dann dieses auf einen Standardwert setzen.

Ich dachte mir "vergessen" wird intelligent genug sein den URL-Parameter auszuwerten :roll:

vergessen 22. Sep 2010 17:57

AW: EmbeddedWB soll offline bleiben
 
Delphi-Quellcode:
procedure TFormBrowser.BrowserBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
if pos('http://',URL) <> 0 then
   begin
   Cancel := true;
   URL := '';
   TargetFrameName := '';
   MessageBox(Handle,'Mist','Mist',mb_Ok or mb_DefButton1);
   end;
end;
wird beim Klicken auf den Flash-Inhalt leider nicht aufgerufen :cry:

Wo könnte man denn sonst noch drehen?

mkinzler 22. Sep 2010 18:02

AW: EmbeddedWB soll offline bleiben
 
Flash läuft ja auch einer BlackBox


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