以前介绍过通过编写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

TWebBrowser禁止弹出Alert对话框相关推荐

  1. asp.net ajax 弹不出alert对话框的解决办法

    用js脚本输出一些提示,可是不管是用 Page.RegisterClientScriptBlock还是用 Page.RegisterStartupScript 注册,该死的提示信息总是不出来.其实不是 ...

  2. ASP.NET弹出一个对话框

    我们在ASP.NET程序的开发过程中,常常需要向用户给出提示信息,比如是否"操作成功","确定"还是"取消"操作.         (1) ...

  3. 一款基于jQuery外观优雅带遮罩弹出层对话框

    今天我们要来分享一款基于jQuery的弹出层对话框插件,该插件包含多种对话框类型,比如提示框.确认框等.更为实用的是,这款jQuery对话框中的按钮事件也可以被我们所捕获,从而相应对话框按钮的各种事件 ...

  4. 弹出消息对话框ScriptManager

    //直接调用WebMessageBox方法#region 弹出消息对话框/// <summary>/// 弹出消息对话框/// </summary>/// <param ...

  5. 可以弹出确认对话框的自定义Web服务器控件ConfirmButton

    作者:活靶子[原创]       出处:AspxBoy.Com 经常在论坛里看到类似这样的问题:"-如何在点击删除按钮的时候弹出个确认删除对话框". 下面我们来自己写一个这样的自定 ...

  6. tkinter实现弹出输入对话框并获取输入对话框中的值

    方法一: import os import cv2 import tkinter from CBC_2 import CBCS from Base64 import BaSe64 from CBC_1 ...

  7. 5弹出阴影遮罩_千文详述Cocos Creator弹出式对话框实现技术,着实硬核

    正文 在Cocos Creator游戏开发中,经常需要使用到弹出式对话框,下面我们就一起来封装下自己的弹出式对话框. 一.弹出式对话框原理解析 1:对话框的结构: 1. `根节点 -->`2. ...

  8. sublimeText3安装package control和禁止弹出更新下载弹窗

    1.sublimeText3安装package control import urllib.request,os; pf = 'Package Control.sublime-package'; ip ...

  9. Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

最新文章

  1. 如何利用 gulp 压缩混淆 “上古”时期的项目文件
  2. Spring依赖注入(DI)
  3. 如何理解signal函数声明
  4. 【数据结构与算法】之深入解析“比特位计数”的求解思路与算法示例
  5. JSP中动态添加 “添加附件选择框”
  6. 关于购买企业邮箱,谨防陷入几大误区
  7. python如何使用多态_在python 3中,如何将多态应用于类
  8. LINUX系统无线网频繁断开_Ubuntu系统安装amp;amp;解决WiFi不可用
  9. [html] HTML为什么要语义化?语义化有什么好处?
  10. 使用Java Swing实现简单计算器
  11. java被3整除的数_java中计算1-200以内可以被3整除的数,输出这些数并统计一共有多少个....
  12. java怎么实现垂直导航栏_jquery实现垂直和水平菜单导航栏
  13. 全国一级计算机考证软件
  14. feedburner怎么用_FeedBurner 不能用了,还有 FeedSky,附个相关插件
  15. 极客日报:腾讯《王者荣耀》禁止未满12周岁用户充值;B站发布16款新品游戏;华为注册姚安娜商标被驳回
  16. Geany 一些使用技巧
  17. 推荐用于环境识别的机器人摄像头
  18. 微信小程序小型按钮内文字布局变形
  19. Mysql中如何根据.frm和.idb文件恢复表结构
  20. esxi突然启动不起来了!显示:Error loading /sb.v00

热门文章

  1. rsync配置与报错总结
  2. PL/SQL复合数据类型
  3. HD_2092整数解
  4. hdu 2833(Floyd + dp)
  5. HDUOJ-2094-产生冠军
  6. CentOS下禁止防火墙
  7. 高效CSS的一些建议
  8. QUrl不同版本之间的坑
  9. PowerDesigner的Table视图同时显示Code和Name的方法[转发]
  10. 一个xmltojson类