Entwickler-Ecke
Internet / Netzwerk - TWebBrowser und neue Fenster
elinox - Mi 18.09.02 11:41
Titel: TWebBrowser und neue Fenster
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 - Mi 02.10.02 10:23
Titel: Kein neues Fenster
Ich habe mir bei der EmbeddedWB-Komponente so geholfen so geholfen:
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 - 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?
Kaweb - 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 - Do 05.12.02 18:59
bei mir funzt's. probier's mal mit der seite
[url]
http://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 - Do 05.12.02 20:06
Titel: geschafft ...
ich habe es jetzt geschafft.
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!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!