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自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

网上有好多解决方法,可是不一定好使,本人经过多次试验,针对WebBrowser控件中自动点击弹出框及禁用脚本提示问题得到如下几种实际情况的解决办法,绝对管用。 1、屏蔽弹出错误脚本 将We...
  • tery001
  • tery001
  • 2015年04月01日 19:45
  • 745

WebBrowser自动点击弹出提示框alert、弹出对话框confirm、屏蔽弹出框、屏蔽弹出脚本错误的解决办法

WebBrowser自动点击
  • xsm360
  • xsm360
  • 2015年04月23日 14:07
  • 702

WebBrowser弹出窗口之(三) – alert( ) / confirm( )

    alert/confirm等javascript函数产生的对话框是标准的windows对话框,例如 通过HOOK对话框的初始化消息WM_INITDIALOG,检测其标题是否为“来自网页...
  • Nocky
  • Nocky
  • 2011年03月11日 15:19
  • 1735

Android webview中定制js的alert,confirm和prompt对话框的方法 (处理webview 带网站地址的弹出框)

在Android的webview中定制js的alert,confirm和prompt对话框的方法 http://618119.com/archives/2010/12/20/19...

Android 全局弹出对话框SYSTEM_ALERT_WINDOW权限

方案一、 1、在开发中有时会用到全局弹出对话框但必须在manifest中申请权限:2、创建Dialog AlertDialog.Builder builder=new AlertDia...

ExtJS Ext.MessageBox.alert()弹出对话框详解

Ext.MessageBox是一个工具类,他继承自Obiect对象,用来生成各种风格的信息提示对话框,Ext.Msg是该类的别名,使用Ext.MessageBox和用Ext.Msg效果是一样的,而后者...

JavaScript弹出对话框的三种方式-alert()-confirm()-prompt()区别和联系

JavaScript弹出对话框的三种方式 投稿:mrr 字体:[增加 减小] 类型:转载 时间:2016-03-23 我要评论 本文主要介绍了javascript中的三种弹出对话框,分别是...

javascript在html中的加载顺序------为什么window.alert(document.getElementById("time").innerTex)无法弹出对话框

最近在写js代码中遇到一个问题,window.alert($("mytime").innerTex);总是无法弹出对话框。 代码1如下: 结果:无法弹出对话框!如果是window.aler...
  • xiaaiwu
  • xiaaiwu
  • 2015年10月29日 00:35
  • 1059
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi_WebBrowser禁止弹出Alert对话框
举报原因:
原因补充:

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