Autor Beitrag
elinox
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 18.09.02 11:41 
Hi !


Kann man TWebBrowser eigendlich irgendwie austreiben das er bei einem Link ( HTML ) der eine neues Fenster aufmacht das selbige dann auch tut??!?

Also nochmal genauer wenn ich auf einer HTML-Seite einem Link einbinde und als Target "_blank" angebe dann sagt das dem Browser das er den link in einem neuen Browserfenster aufmachen soll ... und ich will das TWebBrowser das eben nicht macht.

Meine Ideen gingen bisher dahin das ich "einfach" die Seite durch einen Filter laufen lasse bevor ich sie anzeigen lasse ... aber wie macht man das ??

Schon mal Danke für die hoffentlich vielen vielen antworten ... grins .

ELinOX
Estoban
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 02.10.02 10:23 
Titel: Kein neues Fenster
Ich habe mir bei der EmbeddedWB-Komponente so geholfen so geholfen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TFUrls.EmbeddedWB1BeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
TargetFrameName := '_SELF';
EmbeddedWB1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
end;

procedure TFUrls.EmbeddedWB1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
  var NewWindow:TForm1;
begin
 try
 NewWindow := TForm1.Create(self);
  with NewWindow do
  ppDisp := (Sender as TEmbeddedWB).DefaultDispatch;
  NewWindow.free;
  except
  end;
end;

Bei mir klappt das. Sollte jemand eine elegantere Idee haben, wäre ich aber auch daran interessiert.

Gruß
Estoban
kuerbis2
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 02.12.02 09:04 
Titel: Kitel: Kein neues Fenster
Hi,

ich habe ein ähnliches Problem. Wenn ich aber gar kein Fenster öffnen will, dann ist die eleganteste Lösung richtig simpel:

Ereigniss: OnNewWindow:

procedure TMainForm.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
cancel:=true; // das war's ;-)
end;

aber dann geht gar kein Fenster auf.

ich hätte aber gerne ein neues Fenster, jedoch nicht vom IE, sondern in meinem "eigenen" Browser, doch wie komme ich an die übergebene URL?
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 02.12.02 16:06 
schau dir doch mal das tut hier im forum an: www.auq.de/viewtopic.php?t=57

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Kaweb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Do 05.12.02 18:34 
Zitat:

Ereigniss: OnNewWindow:

procedure TMainForm.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
cancel:=true; // das war's
end;


Das funktioniert nicht! Muss man irgendwoanders noch eine Einstellungen machen??
kuerbis2
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 05.12.02 18:59 
bei mir funzt's. probier's mal mit der seite

[url]www.bitsol.de/startup.html[/url] (ist Flash5)

da mache ich bei Klick def. ein neues Fenster auf.


sonst habe ich keine (mir noch bekannten) einstellungen vorgenommen.
ich kann Dir ja mal meine "main.pas" rüberschicken,
da ist dann auch die Lösung drin, Laufwerke, lokaler Zugriff etc. zu verbieten und bei "_blank" einen neuen TWebBrowser zu öffnen. Außerdem ist die rechte Maus (für std-IE-funktionen) abgeschaltet.
Kaweb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Do 05.12.02 20:06 
Titel: geschafft ...
ich habe es jetzt geschafft.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
uses MSHTML;

procedure Tmain_form.WebBrowser_v11NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
var
 Doc: IHTMLDocument2;
 S: string;
 varUrl: string;
 x:olevariant;
begin
 x := 0;
 begin
   Cancel := True;
   Doc := IHTMLDocument2(TWebBrowser(Sender).Document);
   S := Copy(Doc.activeElement.outerHTML,
        pos('href=', Doc.activeElement.outerHTML) + 5,
        length(Doc.activeElement.outerHTML) -
        pos('href=', Doc.activeElement.outerHTML) + 5);

   S := Copy(S, 0, pos('>', S) - 1);

   if pos('"', S) = 1 then
      S := Copy(S, 2, Length(S) - 16);

   varURL := S;
   WebBrowser_V11.Navigate(varURL,x,x,x,x);
 end;
end;


thx für eure hilfe!!