TWebBrowser控件彻底防止弹出新窗口
最近在编写一个使用到TWebBrowser控件的软件,浏览网页时经常会弹出各种各样的窗口,尤其是广告,让人烦不胜烦,参考网上的一些资料,针对不同的弹窗方式采取相应的措施就能禁止各种弹窗。
1. 将TWebBrowser控件的Silent属性设置为True可以防止弹出“语法错误”的窗口。
2. 编写TWebBrowser控件的OnNewWindow2事件响应代码可以阻止<a href='url' target='_blank'>方式的新窗口
procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
begin
Cancel := True;
end;
3. 编写TWebBrowser控件的OnNavigateComplete2事件响应代码可以阻止Javascript脚本弹出的新窗口
uses MsHTML;
procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
((aSender as TWebBrowser).Document as
IHTMLDocument2).parentWindow.execScript('window.open=function(){return
true}','JavaScript'); //禁止使用open方式弹出的窗口
((aSender as TWebBrowser).Document as
IHTMLDocument2).parentWindow.execScript('window.alert=function(){return
true}','JavaScript'); //禁止使用alert方式弹出的对话框
((aSender as TWebBrowser).Document as
IHTMLDocument2).parentWindow.execScript('window.showModalDialog=function(){return
true}','JavaScript'); //禁止使用showModalDialog方式弹出的窗口
((aSender as TWebBrowser).Document as
IHTMLDocument2).parentWindow.execScript('window.showModelessDialog=function(){return
true}','JavaScript'); //禁止使用showModelessDialog方式弹出的对话框
end;
TWebBrowser控件彻底防止弹出新窗口的更多相关文章
- WebBrowser控件应用:弹出新窗体和关闭窗口
缘起:上次写了一个<WebBrowser控件的简单应用2>,提到了在NewWindow事件中打开新窗口的例子.有网友“队长 ”提出那个事件得到的参数是本页面的,而不是新页面的,经过测试,果 ...
- 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...
- iOS开发小技巧--判断控件是否显示在当前窗口
一.判断控件是否显示在当前窗口,需要同时满足一下条件: 控件的Hidden = NO; 控件的Alpha >= 0.01; self.window = keyWindow; 主窗口的bounds ...
- chrome偶尔弹出新窗口的解决方案
最近使用谷歌浏览器,在搜索页点击搜索结果时,偶尔会弹出新窗口,而不是新标签,试验发现,只要将chrome里面安装的google drive app卸载就行了. 当然了,如果此方法不适合你的情况,还可以 ...
- js弹出新窗口居中
方式1: <script language="javascript"> var newUrl = <%=newUrl % > //window.locati ...
- 双缓冲绘图和窗口控件的绘制——ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 .
双缓冲绘图和窗口控件的绘制 ---ATL ActiveX 窗口控件生成向导绘制代码OnDraw的一个错误 cheungmine 我们通常使用ATL COM组件,生成一个带窗口的ActiveX控件,然后 ...
- 点击grid单元格弹出新窗口
实现功能:点击指定单元格后会弹出新窗口,并且最后一行合计不会触发单元格触发函数 <script type="text/javascript"> grid.on('cel ...
- 通过C# WinForm控件创建的WPF WIndow窗口控件无法输入的问题
原文:通过WinForm控件创建的WPF 控件无法输入的问题 今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行:但在 ...
- 解决以showModalDialog打开的页面在提交表单时弹出新窗口的问题
源代码如下: 父页面: window.showModalDialog("../readfile/readFile.jsp","","dialogWid ...
随机推荐
- spring 定时任务 scheduled Cron表达式
转载:https://blog.csdn.net/u011789653/article/details/51153536 可以借鉴:https://www.cnblogs.com/softidea/p ...
- 智行火车票免费加速到VIP最高速抢票(不用朋友积攒或者购买加速包)
更新: 2018.11.07, 昨天我买火车票,已经不行了,这个bug已经没有了,被修复了, 望大家知悉!!! 智行火车票免费加速到VIP最高速抢票(不用朋友积攒或者购买加速包) 1)下过单后选择抢到 ...
- [UE4]Lock Always
创建一个Widget加到视图,指定为鼠标焦点,并显示鼠标 Lock Always:叫鼠标锁定在游戏窗口内.
- 梳理源码:spring ioc容器加载的流程图
- MySQL常用语句大全
数据库操作:创建数据库create database database_name 查看数据库 show databases使用数据库use dbname删除数据库 drop database dbna ...
- Tomcat内存优化
一.Tomcat内存优化 T omcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS参数. 1.JAVA_OP ...
- 微信小程序自定义微信客服按钮
微信小程序官方api中提到的微信客服,是一个固定的组件,图标样式固定,大小最多27px 很明显这个是不能满足我们各种奇葩需求的.下面提供一个野蛮的自定义方法. 比如做一个这样的按钮: 图标用自定义的, ...
- android 开发 在一个工具类(或者适配器class)里启动activity
实现思路: 1.需要给工具类里传入context: 2.使用上下文mContext.startActivity启动activity 例子1: public class SafePlaceRecycle ...
- [Android]Android布局优化之 ViewStub
转载请标注:转载于http://www.cnblogs.com/Liuyt-61/p/6602926.html -------------------------------------------- ...
- 自定义UITableViewCell上的delete按钮
http://blog.csdn.net/xiaoxuan415315/article/details/7834940