`
tomgooityeeee
  • 浏览: 73680 次
文章分类
社区版块
存档分类
最新评论

[转]当用webbrowser1加载网页的时候,网页中出现js错误,会弹出一个提示,如何屏蔽不提示?

    博客分类:
  • java
阅读更多
    <p>webbrowser中的脚本错误处理 <br> 当ie浏览器遇到时脚本错误,左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框。但是webbrowser控件则没有这么聪明,它会弹出错误信息框,使得程序显的很不友好,而且会让一些自动执行的程序暂停。虽然webbrowser提供了scripterrorssuppressed属性,经过尝试,结果是令人遗憾的,通过设置该属性可以解决部分问题,但不能彻底解决。在此探讨两种解决方案:一是通过截获webbrowser.document.window.error事件,并阻止webbrowser继续处理错误来解决。如下: <br>  //注册捕获控件的错误的处理事件 <br>  this.webbrowser.document.window.error += <br>   new htmlelementerroreventhandler(window_error); <br>  //对错误进行处理 <br>  void window_error(object sender, htmlelementerroreventargs e) <br>  { <br>    e.handled = true; // 阻止其他地方继续处理 <br>  } <br>上面的方法可以解决大部分问题,但对于多个框架嵌套等等的情形还是不能很好的解决,于是只能自己动手封装一个mywebbrowser了,然后用我们自己的mywebbrowser来替代webbrowser。如下: <br>public class mywebbrowser : system.windows.forms.webbrowser <br>{ <br>  private shdocvw.iwebbrowser2 iwb2; <br><br>  protected override void attachinterfaces(object nativeactivexobject) <br>  { <br>    iwb2 = (shdocvw.iwebbrowser2) nativeactivexobject; <br>    iwb2.silent = true; <br>    base.attachinterfaces(nativeactivexobject); <br>  } <br><br>  protected override void detachinterfaces() <br>  { <br>    iwb2 = null; <br>    base.detachinterfaces(); <br>  } <br>} <br><br>这种方法能能很好的解决问题,其实使用过非托管webbrowser的朋友肯定看出来了,实际上是通过引用shdocvw绕过托管代码,直接shdocvw.iwebbrowser2.silent = true,最原始的也是最有效的。 <br><br>==================以上网上原话 <br>因为我也遇到过这样的问题,如果网页是自己做的 其实最好的办法还是在网页中去掉脚本错误</p> 
分享到:
评论

相关推荐

    Delphi禁止WebBrowser弹出IE的对话框

    当WebBrowser加载的页面中执行了JavaScript代码,比如`alert('Message')`,IE浏览器会显示一个带有指定消息的警告对话框,等待用户点击确定后继续执行后续代码。在大多数情况下,这是与用户交互的一种方式,但在自动...

    vb,Webbrowser1获取网页源码

    打开VB开发环境,选择工具箱,如果`WebBrowser`控件不在默认视图中,可以通过点击“更多控件”按钮,然后在弹出的列表中找到并勾选`Microsoft Web Browser`,这样`WebBrowser1`控件就会出现在工具箱中,可以将其拖放...

    MFC中通过webbrowser控件操作网页。

    MFC的WebBrowser控件提供了`DocumentComplete()`通知,当网页加载完成后,这个函数会被调用。在其中,你可以调用`IHTMLDocument2`接口的`execScript()`方法来执行JavaScript: ```cpp void CMyDialog::...

    C#生成网页截图 C#将网页内容转换成图片保存到本地( webbrowser 可应用于B/S结构中)

    1. **添加WebBrowser控件**:在你的C#窗体应用程序中,从工具箱中拖放一个`WebBrowser`控件到设计界面,用于加载和显示网页。 2. **设置代理服务器**:如果网页需要通过代理服务器访问,可以通过`WebBrowser`控件的...

    VB6.0 WebBrowser阻止弹出窗口的3个办法

    第一个方法是在WebBrowser控件完成加载页面时,通过修改JavaScript环境中的`alert()`, `confirm()`, 和`showModalDialog()`函数,使其失去作用,从而阻止这些函数触发的弹出窗口出现。具体做法是,在`WebBrowser1_...

    vb6获取webbrowser弹出的错误

    然而,在实际使用过程中,WebBrowser控件可能会遇到各种错误,比如加载页面失败、JavaScript错误或者网络问题等。了解如何捕获并处理这些错误对于编写健壮的应用程序至关重要。 首先,我们需要知道VB6中的错误处理...

    WebBrowser脚本错误的完美解决方案

    然而,当浏览的网页存在JavaScript或其他脚本语言的错误时,IE浏览器通常会在左下角显示一个黄色警告图标,用户可以选择查看错误详情。但对于使用WebBrowser控件的程序来说,这些脚本错误可能会导致弹出错误信息框,...

    WebBrowser控件应用:弹出新窗体(源码)

    在`WebBrowser1_NewWindow`事件处理函数中,我们使用`e.Cancel = true`来阻止原生的新窗口弹出。这样,`window.open`调用将不会在系统默认的浏览器中打开新窗口,而是被我们的自定义处理逻辑所替代。 在实际应用中...

    WinForm开发中屏蔽WebBrowser脚本错误提示的方法

    然而,在某些情况下,网页中的JavaScript脚本可能会出现错误,导致用户界面出现不期望的错误提示。为了解决这个问题,我们需要采取措施来屏蔽这些脚本错误提示,以保持良好的用户体验。 首先,我们尝试通过设置`...

    vb webbrowser 检测网页下载完整性

    否则返回`False`并弹出一个消息框提示用户。 7. **实际应用场景**: - 自动化测试:确保测试脚本只在页面完全加载后才执行下一步操作。 - 数据抓取:当从网页中提取数据时,必须等待所有内容加载完成才能确保数据...

    WPF中使用WebBrowser

    2. 在弹出的“添加引用”对话框中,转到“.NET”选项卡。 3. 搜索`System.Windows.Presentation`,如果找不到,可能需要更新你的Visual Studio或者安装.NET Framework的相应版本。 4. 添加引用后,确保项目已正确...

    WebBrowser_网页操作

    在.NET框架中,`WebBrowser`控件是一个强大的工具,允许开发者在Windows应用程序中嵌入网页浏览功能。这个控件是基于Internet Explorer引擎,因此它能够解析和显示HTML内容,执行JavaScript,甚至与网页交互。在C#...

    webBrowser的使用方法详解

    例如,如果你想在页面加载完成后弹出一个消息框,可以这样做: ```csharp webBrowser1.DocumentCompleted += (sender, e) =&gt; { MessageBox.Show("页面已加载完成"); }; ``` ### 自定义用户代理 有时候,我们可能...

    C#中的WebBrowser控制操作

    - 设置`WebBrowser.ScriptErrorsSuppressed`为`true`可以避免弹出JavaScript错误对话框。 6. **页面导航完成事件** - 在页面加载完成后,可以通过`webBrowser1_Navigated`事件来执行一些逻辑操作,如初始化页面...

    WebBrowser嵌入html 示例

    `WindowTitle.xaml.cs`可能包含了另一个窗口类,用于展示一个带有标题的窗口,这可能是一个子窗口或弹出窗口,同样可以包含`WebBrowser`控件。 `App.xaml`和`MainWindow.xaml`是XAML文件,定义了UI的布局和样式。在...

    C#实现Winform中打开网页页面的方法

    `WebBrowser`控件为C# Winform应用提供了丰富的网页浏览和控制能力,是开发桌面应用程序时不可或缺的一部分。 总结来说,C#中实现Winform打开网页页面的方法主要包括使用`System.Diagnostics.Process.Start()`以及...

    WebBrowser控件使用技巧分享

    - **屏蔽错误脚本提示**:通过设置`IWebBrowser2.Silent`属性为`true`,可以阻止JavaScript错误弹出警告对话框。 - **扩展NewWindow事件**:创建`BeforeNewWindow`事件,提供新窗口URL,使得开发者可以决定是否在新...

    IE WebBrowser控件基本使用

    在Windows编程中,IE WebBrowser控件是一个非常重要的组件,它允许开发者在应用程序中嵌入一个Web浏览器的功能。这个控件基于Microsoft Internet Explorer的内核,使得开发者可以实现浏览网页、执行JavaScript、与...

    WebBrowser控件技巧集

    WebBrowser控件是Windows应用程序开发中的一个重要组件,它允许开发者在桌面应用中嵌入Web浏览功能。这个控件集包含了多种使用WebBrowser控件时的技巧和方法,可以帮助开发者更高效、更灵活地利用该控件。下面我们将...

Global site tag (gtag.js) - Google Analytics