![]() |
WebBrowser im Pagekontrol mit Tabs = konflikt mit javascript
Hallo Leute ich habe hier folgende proceduren die mir einen WebBrowser ermölichen welcher in Tabs arbeitet. Ich brauche dies als Funktion in einem Programm.
Delphi-Quellcode:
und schließlich startet das ganze mit //damit kein IE Fenster bei externem link aufpopt. procedure TForm1.NewWindow(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool); var Tabsheet: TTabsheet; Browser: TWebBrowser; begin //Neues TabSheet mit WebBrowser erstellen Taberzeugen(nil); //Aktives TabSheet finden TabSheet:= Form1.PageControl1.ActivePage; //Anfrage umleiten (neue seite im neuen webbrowserdentseranzeigen) ppDisp:= (PageControl1.ActivePage.Controls[0] as TWebBrowser).DefaultInterface; end; procedure TForm1.Taberzeugen(Sender: TObject); var NewTab : TTabSheet; //variable, die unser neues Tabsheet seinwird NewWeb : TWebBrowser;//auf dem tabsheet wird dann diesesbrowserfenster liegen, beide werden zur laufzeit erzeugt begin //TabSheet erstellen NewTab:= TTabSheet.Create(Form1.PageControl1); //TabSheet ist sichtbar NewTab.Visible := True; //Beschriftung übergeben NewTab.Caption := ''; //TabSheet an das PageControl übergeben NewTab.PageControl := Form1.PageControl1; //Aktive Seite des PageControls auf das gearde erstellt TabSheetsetzen Form1.PageControl1.ActivePage:= NewTab; //neues Browser Objekt erstellen NewWeb:=TWebBrowser.Create(NewTab); //Browser Objekt an das TabSheet übergeben TWinControl(NewWeb).parent := NewTab; //Browser Ausrichtung festlegen NewWeb.Align:= alClient; //ggf. weitere Ereignisse für das neue WebBrowser Objektfestlegen NewWeb.OnNewWindow2:= NewWindow; //WebBrowser sichtbar NewWeb.Visible := True; end;
Delphi-Quellcode:
das klappt alles prima, surfen geht eigentlich problemlos.
Taberzeugen(nil);
(PageControl1.ActivePage.Controls[0] as TWebBrowser).Navigate(startseite); viele seiten arbeiten aber mit javascript und es wäre schön wenn mein browser dies auch unterstützen würde. (man kann in den IE sicherheitsregeln auch java abschalten aber das gefäfllt mir nicht) ![]() auf dieser seite kann man sich bilder vergrößern lassen und es popt ein fenster auf, das macht mein browser in einem neuen tab. wenn nun aber der nutzer auf schließen klickt schließt sich normaler weise das fenster. bei mir aber TWebBrowser auf PageControl1.ActivePage.Controls[0]. so das die aktive seite nun blank ist. damit schießt sich mein proggie bei jeglicher eingabe ab mit der bemerkung "fenster-handle des ole-objekts nicht verfügbar." wie kann ich das abfangen? das dann in solchen fällen gleich das ganze tab schließen kann. ohne das der Nutzer eine eingabe machen kann. normal würde ich ja einfach auf die komponente klicken und in den ereignissen nachschaun. aber das geht hier ja nicht. ich hoffe mir kann einer helfen. danke im vorraus. mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz