![]() |
alerts im Webbrowser unterdrücken
Hallo,
wenn ich mich beim TWebbrowser ins OnNewWindow2-Event hänge, kann ich ja Popups unterdrücken. Mit Silent := True schalte ich Fehlermeldungen und Debuginformationen vom IE ab, aber wie bekomme ich diese Javascriptmeldungen von der Seite selber weg? Also z.B. alert( 'Ich geh dir auf den Keks' ) - Meldungen? |
Re: alerts im Webbrowser unterdrücken
Die Javascript Meldungen wirst du wohl nur wegbekommen, wenn du Javascript deaktivierst, da sie nicht vom Browser kommen, sondern eben von der Seite, da sie ja der Webdesigner da rein gepackt hat.
|
Re: alerts im Webbrowser unterdrücken
JavaScript deaktivieren ist keine Alternative. Wegen dem blöden JS muss ich die Seite ja mit dem Webbrowser durchackern. Die alerts werden zwar vom JavaScript ausgelöst. Anzeigen tut sie aber ja der Webbrowser. Is ja kein direkter Teil der HTML-Seite. Und Popups lassen sich ja auch unterdrücken. Irgendwie muss das doch machbar sein. So ein Ärger... :(
|
Re: alerts im Webbrowser unterdrücken
mit webbrowser1.silent:=true; geht es nicht?
ansonsten hol den quelltext mit IdHTTP, geh dann den quelltext durch und schneide die alerts raus bzw. kommentiere sie einfach aus und lade das dann direkt in den webbrowser.. |
Re: alerts im Webbrowser unterdrücken
Ne. Silent unterdrückt wohl nur die Fehlermeldungen vom IE selbst, aber nicht die JS-Meldungen. Ich hab mittlerweile wirklich alle alerts und confirms aus dem Quelltext gefiltert.
|
AW: alerts im Webbrowser unterdrücken
Bitte verzeiht mir das Ausgraben dieses uralten Threads, aber da ich zu diesem Thema hier nicht fündig geworden bin, möchte ich gerne unsere Community an meinen Erkenntnissen teilhaben lassen.
Ich selbst habe gerade das Problem, dass eine Website, die ich mit TWebBrowser darstellen lassen möchte, einen StackÜberlauf (in JavaScript?) erzeugt. Da ich keinen Einfluss auf die Homepage habe, ist es sehr ärgerlich, dass mein Programm folgende Meldung anzeigt und so lange stehen bleibt, bis ich sie beantworte: Zitat:
Die aktuelle Lösung habe ich auf ![]() Letztendlich muss man TWebbrowser ableiten und die Prozedur "Exec" überschreiben, um vorzugeben, dass alle Fehler "erfolgreich behandelt" wären. Nachfolgend der Code, aber eine Warnung und Denkanstoß: Unter ![]()
Delphi-Quellcode:
Hier noch ein wenig Keyword-Spam für zukünftige Suchanfragen:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, SHDocVw, ActiveX; type TMeinWebBrowser = class(SHDocVw.TWebBrowser, IOleCommandTarget) private function QueryStatus(CmdGroup: PGUID; cCmds: Cardinal; prgCmds: POleCmd; CmdText: POleCmdText): HRESULT; stdcall; function Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD; const vaIn: OleVariant; var vaOut: OleVariant): HRESULT; stdcall; end; TForm2 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } wb: TMeinWebBrowser; end; var Form2: TForm2; implementation {$R *.dfm} function TMeinWebBrowser.QueryStatus(CmdGroup: PGUID; cCmds: Cardinal; prgCmds: POleCmd; CmdText: POleCmdText): HRESULT; stdcall; begin Result := S_OK; end; function TMeinWebBrowser.Exec(CmdGroup: PGUID; nCmdID, nCmdexecopt: DWORD; const vaIn: OleVariant; var vaOut: OleVariant): HRESULT; stdcall; begin // presume that all commands can be executed; for list of available commands // see SHDocVw.pas unit, using this event you can suppress or create custom // events for more than just script error dialogs, there are commands like // undo, redo, refresh, open, save, print etc. etc. // be careful, because not all command results are meaningful, like the one // with script error message boxes, I would expect that if you return S_OK, // the error dialog will be displayed, but it's vice-versa Result := S_OK; // there's a script error in the currently executed script, so if nCmdID = OLECMDID_SHOWSCRIPTERROR then begin // if you return S_FALSE, the script error dialog is shown // Result := S_FALSE; // if you return S_OK, the script error dialog is suppressed Result := S_OK; end; end; procedure TForm2.FormCreate(Sender: TObject); begin wb := TMeinWebBrowser.Create(Self); wb.Silent := True; TWinControl(wb).Parent := Self; wb.SetBounds(10,10,400,400); wb.Navigate('http://www.homepage.sample'); end; end. TWebbrowser Alert Popup unterdrücken verhindern JavaScript Debug deaktivieren Fehlermeldung abfangen SilentMode ScriptErrorsSuppressed Meldung von Webseite |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 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