You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中WinForms WebBrowser控件加载网页异常求助

修复WinForms WebBrowser控件加载kijiji.ca的兼容性问题

WebBrowser控件默认依赖旧版IE内核,而kijiji这类现代网站早已停止对旧IE的兼容,这是导致脚本错误和显示异常的核心原因。以下是几种可行的修复方案:

方案1:强制WebBrowser使用Edge内核(无需替换控件)

通过修改注册表让WebBrowser调用Edge的渲染引擎,解决兼容性问题:

  • 运行regedit.exe打开注册表编辑器
  • 根据你的程序位数定位路径:
    • 32位程序:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
    • 64位程序:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
  • 右键新建DWORD(32位)值,命名为你的程序可执行文件全名(例如YourApp.exe)
  • 设置数值数据为11001(十进制,对应Edge最新兼容模式),如果需要强制IE11兼容则设为11000

方案2:关闭脚本错误提示

如果只是想消除弹窗,在窗体初始化时添加代码禁用脚本错误提示:

public Form1()
{
    InitializeComponent();
    webBrowser1.ScriptErrorsSuppressed = true;
}

注意:此方法仅隐藏错误弹窗,无法解决页面显示异常的问题。

方案3:替换为WebView2控件(彻底解决兼容性)

WebView2基于Edge Chromium内核,完全支持现代网站,适合长期解决方案:

  1. 确保项目使用.NET Framework 4.8及以上版本
  2. 在NuGet包管理器中安装Microsoft.Web.WebView2
  3. 将WebView2控件拖放到窗体
  4. 在窗体的Load事件中添加加载代码:
private async void Form1_Load(object sender, EventArgs e)
{
    await webView21.EnsureCoreWebView2Async();
    webView21.CoreWebView2.Navigate("https://www.kijiji.ca");
}

提示:发布程序时,可选择包含WebView2运行时,避免用户因未安装Edge导致控件无法使用。

内容的提问来源于stack exchange,提问作者TotalNoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 09:19:55