TWebBrowser禁止弹出Alert对话框
以前介绍过通过编写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对话框相关推荐
- asp.net ajax 弹不出alert对话框的解决办法
用js脚本输出一些提示,可是不管是用 Page.RegisterClientScriptBlock还是用 Page.RegisterStartupScript 注册,该死的提示信息总是不出来.其实不是 ...
- ASP.NET弹出一个对话框
我们在ASP.NET程序的开发过程中,常常需要向用户给出提示信息,比如是否"操作成功","确定"还是"取消"操作. (1) ...
- 一款基于jQuery外观优雅带遮罩弹出层对话框
今天我们要来分享一款基于jQuery的弹出层对话框插件,该插件包含多种对话框类型,比如提示框.确认框等.更为实用的是,这款jQuery对话框中的按钮事件也可以被我们所捕获,从而相应对话框按钮的各种事件 ...
- 弹出消息对话框ScriptManager
//直接调用WebMessageBox方法#region 弹出消息对话框/// <summary>/// 弹出消息对话框/// </summary>/// <param ...
- 可以弹出确认对话框的自定义Web服务器控件ConfirmButton
作者:活靶子[原创] 出处:AspxBoy.Com 经常在论坛里看到类似这样的问题:"-如何在点击删除按钮的时候弹出个确认删除对话框". 下面我们来自己写一个这样的自定 ...
- tkinter实现弹出输入对话框并获取输入对话框中的值
方法一: import os import cv2 import tkinter from CBC_2 import CBCS from Base64 import BaSe64 from CBC_1 ...
- 5弹出阴影遮罩_千文详述Cocos Creator弹出式对话框实现技术,着实硬核
正文 在Cocos Creator游戏开发中,经常需要使用到弹出式对话框,下面我们就一起来封装下自己的弹出式对话框. 一.弹出式对话框原理解析 1:对话框的结构: 1. `根节点 -->`2. ...
- sublimeText3安装package control和禁止弹出更新下载弹窗
1.sublimeText3安装package control import urllib.request,os; pf = 'Package Control.sublime-package'; ip ...
- Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框
场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
最新文章
- 如何利用 gulp 压缩混淆 “上古”时期的项目文件
- Spring依赖注入(DI)
- 如何理解signal函数声明
- 【数据结构与算法】之深入解析“比特位计数”的求解思路与算法示例
- JSP中动态添加 “添加附件选择框”
- 关于购买企业邮箱,谨防陷入几大误区
- python如何使用多态_在python 3中,如何将多态应用于类
- LINUX系统无线网频繁断开_Ubuntu系统安装amp;amp;解决WiFi不可用
- [html] HTML为什么要语义化?语义化有什么好处?
- 使用Java Swing实现简单计算器
- java被3整除的数_java中计算1-200以内可以被3整除的数,输出这些数并统计一共有多少个....
- java怎么实现垂直导航栏_jquery实现垂直和水平菜单导航栏
- 全国一级计算机考证软件
- feedburner怎么用_FeedBurner 不能用了,还有 FeedSky,附个相关插件
- 极客日报:腾讯《王者荣耀》禁止未满12周岁用户充值;B站发布16款新品游戏;华为注册姚安娜商标被驳回
- Geany 一些使用技巧
- 推荐用于环境识别的机器人摄像头
- 微信小程序小型按钮内文字布局变形
- Mysql中如何根据.frm和.idb文件恢复表结构
- esxi突然启动不起来了!显示:Error loading /sb.v00