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

    <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> 

你可能感兴趣的:(工作,网页中出现js错误,会弹出一个提示,如何屏蔽不提示?java)