Delphi_WebBrowser禁止弹出Alert对话框

转载 2013年12月02日 20:07:35

Webbrowser1的OnDocumentComplete事件响应代码可以拦截网页Alert弹出的对话框,代码:

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;  const pDisp: IDispatch; var URL: OleVariant);
begin
  ((Sender as TWebBrowser).Document as IHtmlDocument2).parentWindow.execScript('window.alert=function(){}''javascript');
end;

此方法对于含有框架的网页子框架网页脚本弹出的Alert对话框无法拦截,因为虽然每个框架网页文档加载完成都会引发OnDocumentComplete事件,但传入的Sender参数始终是WebBrowser1本身,该事件响应代码对子框架中的网页文档无效。注意到传入的第二个参数pDisp是包含了加载完成的框架的接口,通过这个接口可以获取框架网页的文档的引用,所以利用该参数进行处理就能真正拦截网页弹出的Alert对话框,具体代码:

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  iWB: IWebBrowser2;
begin
  if
 pDisp.QueryInterface(IID_IWebBrowser2, iWB) = s_ok then
  begin

    (iWB.Document as IHTmlDocument2).parentWindow.execScript('window.alert=function(){}','javascript');
  end;
end;

引用单元:MsHtml

webBrowser强制在本窗口打开,禁止在新窗口打开的解决方案

有时需要用WebBrowser加载URL,来实现某些功能。而这时,我们就不希望所打开的页面中的链接,在新窗口中打开,因为这样的话,实际上是用系统默认的浏览器打开了,从而脱离了你的WebBrowser,...
  • fox123871
  • fox123871
  • 2015年03月09日 22:56
  • 4549

Delphi禁止TWebBrowser弹出IE的的对话框

  • 2015年01月26日 23:37
  • 31KB
  • 下载

C#Webbrowser中屏蔽弹出窗口及脚本错误提示

当IE浏览器遇到脚本错误时浏览器,左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框。当我们使用WebBrowser控件时有错误信息框弹出,这样程序显的很不友好,而且会...
  • wonsoft
  • wonsoft
  • 2010年01月16日 02:39
  • 18791

Delphi_WebBrowser禁止弹出Alert对话框

Webbrowser1的OnDocumentComplete事件响应代码可以拦截网页Alert弹出的对话框,代码: procedure TForm1.WebBrowser1DocumentCompl...
  • wbryfl
  • wbryfl
  • 2013年12月02日 20:07
  • 3452

delphi WebBrowser的使用方法详解(三)

WebBrowser 操作记要 WebBrowser1.GoHome;  //到浏览器默认主页 WebBrowser1.Refresh;  //刷新 WebBrowser1.GoBack;  //...
  • xtfnpgy
  • xtfnpgy
  • 2013年11月01日 16:51
  • 2502

C# WebBrowser 禁用alert,返回信息。禁用confirm 返回信息。 页面增加js,页面执行js函数

C# WebBrowser 禁用alert,返回信息。禁用confirm 返回信息。 页面增加js,页面执行js函数 StringBuilder strAlertBuilder = new Stri...
  • wangzhiqiang123456
  • wangzhiqiang123456
  • 2014年11月11日 15:49
  • 1278

TWebBrowser禁止弹出Alert对话框

以前介绍过通过编写Webbrowser1的OnDocumentComplete事件响应代码可以拦截网页弹出的Alert等对话框,代码如下: procedure TForm1.WebBrowser...
  • diligentcat
  • diligentcat
  • 2013年12月10日 13:12
  • 690

webbrowser delphi 事件详解

基础说明: 方法: GoBack 后退,使你在当前历史列表中后退一项,Alt + ← GoForward 前进,使你在当前历史列表中前进一项,Alt + → GoHome 主页,连接用户默...
  • duck04551
  • duck04551
  • 2012年03月15日 10:25
  • 1698

winform中如何实现自动点击webbrowser弹出对话框中的确定按钮

Q:winform中如何实现自动点击webbrowser弹出对话框中的确定按钮A: //using mshtml;        //using SHDocVw;        private voi...
  • jinjazz
  • jinjazz
  • 2007年12月02日 22:58
  • 10128

Android WebView 不能弹出alert的对话框的处理

加载WebView弹框没有弹出来,刚开始一直认为是前端的问题,后面才发现的Anroid WebView会阻止alert的对话框弹框,源码中onJsAlert方法默认设置为false。当我们覆盖父类的方...
  • xiewensheng1126
  • xiewensheng1126
  • 2017年10月19日 15:42
  • 147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi_WebBrowser禁止弹出Alert对话框
举报原因:
原因补充:

(最多只允许输入30个字)