用webBrowser打开网页出现脚本错误怎么办
当IE浏览器遇到脚本错误时,在浏览器左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框。我们在用webBrowser编写的程序打开网页,遇到脚本有问题是,会弹出一个错误提示框,需要确认后才能够进行执行。如果我们设计的程序是用来自动处理网页的,那么在出现这种情况时,程序运行被打断,需要人工干预。这显然无法达到我们的要求。
那么,在使用webBrowser打开网页遇到脚本错误时如何处理才能让程序无干扰的自动运行呢?
webBrowser给我们提供了一个属性:ScriptErrorsSuppressed 。当不想再遇到脚本错误时弹出错误提示框,可以将该值设为TRUE。
webBrowser1.ScriptErrorsSuppressed = true;
ScriptErrorsSuppressed 属性的具体的用法如下:
将此属性设置为 false 可调试显示在 WebBrowser 控件中的网页。如果要使用该控件向应用程序添加基于 Web 的控件和脚本代码,则此属性十分有用。如果将该控件用作泛型浏览器,则此属性用处不大。完成应用程序的调试后,将此属性设置为 true 以取消显示脚本错误。http://hovertree.com/h/bjaf/scjyuanma.htm
注意:当 ScriptErrorsSuppressed 设置为 true 时,WebBrowser 控件将隐藏其源自基础 ActiveX 控件的所有对话框,而不仅仅是脚本错误。有时,在显示某些对话框(例如,用于浏览器安全设置和用户登录的对话框)时,可能需要取消显示脚本错误。在这种情况下,应将 ScriptErrorsSuppressed 设置为 false,并在 HtmlWindow.Error 事件的处理程序中取消显示脚本错误。
这种做法的负作用如上面红字描述的,如果只想屏蔽脚本错误,可以用以下方法:
下面的代码演示如何在不取消显示其他对话框的情况下取消显示脚本错误。在此示例中,将 ScriptErrorsSuppressed 属性设置为 false 以确保显示对话框。HtmlWindow.Error 事件的处理程序取消显示该错误。只有在文档已完成加载时才能访问此事件,因此该处理程序被附加到 DocumentCompleted 事件处理程序中。
// 仅隐藏脚本错误,其他错误照样提示 private void SuppressScriptErrorsOnly(WebBrowser browser)
{
// 确信 ScriptErrorsSuppressed 设为 false.
browser.ScriptErrorsSuppressed = false; // 处理 DocumentCompleted 事件以访问 Document 对象.
browser.DocumentCompleted +=
new WebBrowserDocumentCompletedEventHandler(
browser_DocumentCompleted);
} private void browser_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
((WebBrowser)sender).Document.Window.Error +=
new HtmlElementErrorEventHandler(Window_Error);
} private void Window_Error(object sender,
HtmlElementErrorEventArgs e)
{
// 忽略该错误并抑制错误对话框
e.Handled = true;
}/* 何问起 hovertree.com */
推荐:http://www.cnblogs.com/roucheng/p/3521864.html
用webBrowser打开网页出现脚本错误怎么办的更多相关文章
- 解决 winform打开网页 和WebBrowser打开链接360误报拦截的问题
以下方法我已经在自己电脑上验证通过,其他电脑并未测试,请广大读者自行验证并反馈,如果有更好的方法请指教. 在winform中如果使用这种方法弹出网页,例如这样 Process.start(" ...
- winform里面打开网页(转)
首先,新建一个winform项目,我在想,如果想要实现打开网页功能的话,应该会有一个控件什么之类的吧?查了工具栏,真的有一个名叫 WebBrowser的家伙,应该就是这货没错了.在网上查了它的资料更加 ...
- 【317】python 指定浏览器打开网页 / 文件
一.python 打开浏览器的方法: 1. startfile方法(打开指定浏览器) import os os.startfile("C:\Program Files\internet ex ...
- Python实用案例,Python脚本,Python实现自动监测Github项目并打开网页
往期回顾 Python实现文件自动归类 前言: 今天我们就利用Python脚本实现Github项目的更新,提醒方式是邮箱.直接开整~ 项目地址: https://github.com/kenwoodj ...
- Android -- 真正的 高仿微信 打开网页的进度条效果
(本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...
- 在WPF程序中打开网页:使用代理服务器并可进行JS交互
本项目环境:使用VS2010(C#)编写的WPF程序,通过CefSharp在程序的窗体中打开网页.需要能够实现网页后台JS代码中调用的方法,从网页接收数据,并能返回数据给网页.运行程序的电脑不允许上网 ...
- 使用urllib2打开网页的三种方法
#coding:utf-8 import urllib2 import cookielib url="http://www.baidu.com" print '方法 1' resp ...
- Apache 打开网页的时候等待时间过长的解决方案
服务器搭建后经常在打开页面的时候,等待很长时间,有时候,都超过一分钟了,然后才能打开,但是打开后,速度又很快,休息一会再点击,又会很慢了,遇到了这种问题很头疼,由于不是专业做服务器配置的,所以刚开始没 ...
- (转)C#调用默认浏览器打开网页的几种方法
转载,原文地址:http://blog.csdn.net/testcs_dn/article/details/42246969 CSharp调用默认浏览器打开网页的几种方法 示例界面: 方法一:从注册 ...
随机推荐
- zendframework 2
我想我的生活需要新的挑战 zf2整个框架里面都应用了namespace,并且他的每个模块,我们都可以根据自己的需要去命名路径,对我来说,zf2的模块化更加的清晰,对于外包来说,或许很方便. 创建他,我 ...
- Linux uniq命令
200 ? "200px" : this.width)!important;} --> 介绍 uniq命令是一个文本去重命令,它能对标准输入和文本文件进行去重操作,并且能将结 ...
- 不插网线,看不到IP的解决办法
在Windows中,如果不插网线,就看不到IP地址,即使这个块网卡已经绑定了固定IP,原因是操作系统开启了DHCP Media Sense功能,该功能的作用如下: 在一台使用 TCP/IP 的基于 W ...
- CSS样式重置
;;;;;;;;;; } input, select { vertical-align:middle; }
- common-dbcp2数据库连接池参数说明
参数 默认值 描述 建议值 DefaultAutoCommit null 通过这个池创建连接的默认自动提交状态.如果不设置,则setAutoCommit 方法将不被调用. true Default ...
- 浮动ip
浮动ip 其实就是动态ip, 静态IP是固定不变的,不管你用不用这个IP上网,这个IP都是属于你的动态IP则是在使用的时候由DHCP服务器临时分配给你的,不用则不分配在网络中如果设置了一部分静态IP地 ...
- Atitit 电子商务订单号码算法(java c# php js 微信
Atitit 电子商务订单号码算法(java c# php js 微信 1.1. Js版本的居然钱三爷里面没有..只好自己实现了. 1.2. 订单号标准化...长度16位 1.3. 订单号的结构 前 ...
- C#设计模式-简单工厂
工厂模式专门负责将大量有共同接口的类实例化.工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类.工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(F ...
- Android笔记——Android内部类
Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类.内部类又分为:常规内部类.局部内部类.匿名内部类和静态嵌套类四种.我们内部类的知识在Android手机开发中经常用到. 一.常规内部 ...
- Win7系统.net framework 4.0没有注册导致部署在IIS的站点跑不起来怎么办
win7装了VS再装IIS,结果IIS里面有.NET4.0,但是程序始终是跑不起来,怎么办呢? 分析觉得可能是因为4.0没有注册到IIS,在win7下如果先安装vs2010 (附带会安装Microso ...