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

marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90">
当IE浏览器遇到脚本错误时浏览器,左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框。当我们使用WebBrowser控件时有错误信息框弹出,这样程序显的很不友好,而且会让一些自动执行的程序暂停。我看到有人采取的解决方案是做一个窗体杀手程序来关闭弹出的窗体。今天探讨的方法是从控件解决问题。


1、SHDocVw.dll

在COM时代我们使用的WebBrowser控件是SHDocVw.dll。屏蔽错误信息的方法很简单使用下面的一句就可以搞定。 
WebBrowser1.Silent = true;

2、.Net中

在.Net中提供了托管的WebBrowser可供我们使用,当然我们仍然可以在.Net中使用COM组建SHDocVw.dll,如果使用SHDocVw.dll
处理错误方式和上面的方法一样。但如果我们是使用.Net组件如何解决这个问题呢?

这个组件给我们提供了一个方法ScriptErrorsSuppressed 。但是在.net framework2.0中他是不起作用的,据说在低版本中使用如下的方式解决

webBrowser1.ScriptErrorsSuppressed = true;

(据说在.net framework2.0以前是这样,我没有使用过)

那么在.net framework2.0中如何解决这个问题呢?

有一种方法不能彻底解决,可以部分解决问题这里也介绍给大家。 
//捕获控件的错误
 this.WebBrowser.Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error);
//对错误进行处理
void Window_Error(object sender, HtmlElementErrorEventArgs e)
{
     // 自己的处理代码
    e.Handled = true;
}

3、上面的方法对于多个框架嵌套等等的情形还是不能很好的解决。

为了彻底解决这个问题,我们借助AxWebBrowser来解决WebBrowser的问题。

我们定义一个自己的类,他的父类是WebBrowser,以后使用这个类就可以了。在这个类的定义中需要引用SHDocVw。 
class EWebBrowser : System.Windows.Forms.WebBrowser
{
    SHDocVw.IWebBrowser2 Iwb2;

    protected override void AttachInterfaces(object nativeActiveXObject)
    {
        Iwb2 = (SHDocVw.IWebBrowser2) nativeActiveXObject;
        Iwb2.Silent = true;
        base.AttachInterfaces(nativeActiveXObject);
    }

    protected override void DetachInterfaces()
    {
        Iwb2 = null;
        base.DetachInterfaces();
    }

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
解决UE5.2 WebBrowser无法播放视频问题可以尝试以下几个方法。 首先,确保你的UE5.2版本已经安装了最新的视频插件和WebBrowser组件。有时旧版本的插件可能无法正常播放视频,更新到最新版本可能会修复这个问题。 其次,检查你的硬件加速设置。有时,WebBrowser无法播放视频是因为硬件加速没有启用或存在冲突。在UE5.2的设置中,可以找到WebBrowser组件的相关设置。尝试启用或禁用硬件加速选项,看看是否可以解决问题。 如果问题仍然存在,可以尝试手动设置视频播放器。为WebBrowser组件指定一个可用的视频播放器,可以增加视频播放的兼容性。你可以尝试使用WebBrowser组件的OpenExternalURL函数来打开外部的视频播放器,或者在WebBrowser中嵌入一个现有的视频播放器的链接。 另外,避免使用过时的或不受支持的视频格式。某些视频格式可能无法在WebBrowser中正常播放。当遇到播放问题时,可以尝试使用更常用的视频格式,如MP4或WebM,看看是否可以解决问题。 最后,检查视频资源的路径和权限。确保视频资源的路径是正确的,并且具有足够的权限来访问。如果视频资源在本地计算机上,确保文件是可读取的,并且没有被其他应用程序占用。 总而言之,解决UE5.2 WebBrowser无法播放视频问题可以通过更新插件、调整硬件加速设置、指定视频播放器、使用常用视频格式和检查资源路径等方法来尝试解决。如果问题仍然存在,建议查阅UE5.2的官方文档或寻求相关技术支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值