C# webBrowser控件禁用alert,confirm之类的弹窗解决方案
同样的代码,我尝试了很多次都没有成功。最后终于成功了,是因为我没有在正确的事件里面调用这段代码。
private void InjectAlertBlocker()
{
HtmlElement head = wbNav.Document.GetElementsByTagName("head")[];
HtmlElement scriptEl = wbNav.Document.CreateElement("script");
mshtml.IHTMLScriptElement element = (mshtml.IHTMLScriptElement)scriptEl.DomElement;
string alertBlocker = "window.alert = function () { }";
element.text = alertBlocker;
head.AppendChild(scriptEl);
wbNav.ScriptErrorsSuppressed = true;
}
//阻止弹出新窗口
private void wbNav_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
}
//必须要在这个事件里面调用才能禁用,之前一直写在别的事件里面,浪费了2小时。
private void wbNav_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
InjectAlertBlocker();
}
为了加深印象,特别记录一下。
BTW,别忘记添加 mshtml.dll 这个组件。 全称:microsoft html object library
C# webBrowser控件禁用alert,confirm之类的弹窗解决方案的更多相关文章
- 黄聪:C# webBrowser控件禁用alert,confirm之类的弹窗解决方案
		
同样的代码,我尝试了很多次都没有成功.最后终于成功了,是因为我没有在正确的事件里面调用这段代码. private void InjectAlertBlocker() { HtmlElement hea ...
 - WebBrowser控件禁用超链接转向、脚本错误提示、默认右键菜单和快捷键
		
原文:WebBrowser控件禁用超链接转向.脚本错误提示.默认右键菜单和快捷键 WebBrowser控件禁用超链接转向.脚本错误提示.默认右键菜单和快捷键从 VS2005开始,VS自带的 WebBr ...
 - WebBrowser控件使用技巧分享
		
原文:WebBrowser控件使用技巧分享 在发布“淘宝登货员”时发现不少朋友对WebBrowser控件比较感兴趣,故在此分享一下使用心得. 首先分享一个WebBrowser的扩展类(此类所需的dll ...
 - C# 禁止 Webbrowser 控件的弹出脚本错误对话框
		
当IE浏览器遇到脚本错误时浏览器,左下 角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框.当我们使用 WebBrowser控件时有错误信息框弹出,这样程序显的很不友好,而 ...
 - C# WebBrowser控件使用整理
		
一.简介 WebBrowser 控件为 WebBrowser ActiveX 控件提供了托管包装. 托管包装使您可以在 Windows 窗体客户端应用程序中显示网页. 使用WebBrowser 控件, ...
 - C# WebBrowser控件详解
		
作者:827969653 0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表 ...
 - C#中的WebBrowser控件的使用
		
0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(st ...
 - C# WebBrowser控件使用教程与技巧收集
		
常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(strin ...
 - C#WebBrowser控件使用教程与技巧收集--苏飞收集
		
C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System. ...
 
随机推荐
- 快速排序中的partition函数的枢纽元选择,代码细节,以及其标准实现
			
很多笔试面试都喜欢考察快排,叫你手写一个也不是啥事.我很早之前就学了这个,对快速排序的过程是很清楚的.但是最近自己尝试手写,发现之前对算法的细节把握不够精准,很多地方甚至只是大脑中的一个映像,而没有理 ...
 - C++ 自由存储区是否等价于堆?
			
"free store" VS "heap" 当我问你C++的内存布局时,你大概会回答: "在C++中,内存区分为5个区,分别是堆.栈.自由存储区.全 ...
 - Mysql 修改字段默认值
			
环境:MySQL 5.7.13 问题描述:建表的时候,users_info表的role_id字段没有默认值,后期发现注册的时候,需要提供给用户一个默认角色,也就是给role_id字段一个默认值. 当前 ...
 - java 方法
			
方法命名规范要求 类的命名规范:“全部单词的 首字母必须大写”.那么在定义方法的时候也是有命名规范要求的:“第 一个单词的首字母小写,之后每个单词的首字母大写”,那么这就是方法 的命名规范. 递归调用 ...
 - 【原创】自己动手写控件----XSmartNote控件
			
一.前面的话 在上一篇博文自己动手写工具----XSmartNote [Beta 3.0]中,用到了若干个自定义控件,其中包含用于显示Note内容的简单的Label扩展控件,用于展示标签内容的labe ...
 - MDK5 STM32编译问题汇总
			
MDK5 STM32编译问题汇总 WIN8.KEIL-MDK-5 编译时,出现弹窗"The ARM C/C++ Compiler 已停止工作",关闭弹窗后,编译输出的窗口中出现如下 ...
 - 父子页面之间元素相互操作(iframe子页面)
			
js/jquery获取iframe子页面中元素的方法: 一.使用window.frames["iframe的ID"]获取元素 window.onload = function() ...
 - Jenkins安装
			
直接下载使用Jenkins有两种方式:一种是下载war包安装.另一种是下载.zip进行安装. 一..zip解压安装 1.下载Jenkins:地址http://mirrors.jenkins-ci.or ...
 - jq使用技巧
			
1. 如何创建嵌套的过滤器 //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为 ...
 - checkbox做全选按钮
			
1.先写一个html页面,里面写一个全选按钮和几个复选框,实现下面2个要求 (1)点击全选按钮选中时,所有的复选框选中. (2)点击全选按钮取消选中时,所有复选框取消选中. <input typ ...