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

Edge浏览器WebView2弹窗点击链接如何打开新Edge窗口

问题场景

基于Edge浏览器的WebView2控件做二次开发时,需要实现效果:WebView2承载的HTML页面中点击触发新窗口的链接时,直接打开独立的系统Edge窗口加载目标地址。
当前使用以下代码实现时,目标URL只会在当前WebView2所在窗口内打开,无法触发独立Edge窗口弹出:

private void webView21_CoreWebView2InitializationCompleted(object sender, CoreWebView2InitializationCompletedEventArgs e)
{
 webView21.CoreWebView2.NewWindowRequested += CoreWebView2_NewWindowRequested;
}

private void CoreWebView2_NewWindowRequested(object sender,CoreWebView2NewWindowRequestedEventArgs  e)
{
    e.NewWindow = (CoreWebView2)sender;
   
}
故障原因

事件处理代码中e.NewWindow = (CoreWebView2)sender;逻辑的作用,是将所有新窗口请求的内容强制路由到当前触发事件的WebView2实例中加载,本质是拦截新窗口请求后让当前控件承载新页面内容,自然不会弹出独立的外部Edge窗口。

修复方案
  • 移除原有给e.NewWindow赋值当前WebView2实例的逻辑
  • 拦截NewWindowRequested事件后,提取事件携带的目标URL,通过系统进程启动逻辑调用Edge打开该地址
  • 设置e.Handled = true,告知WebView2该新窗口请求已被自定义逻辑处理,无需执行默认路由行为

修复后的可直接运行代码如下:

using System.Diagnostics;

private void webView21_CoreWebView2InitializationCompleted(object sender, CoreWebView2InitializationCompletedEventArgs e)
{
    // 增加初始化成功判断,避免初始化失败时空引用报错
    if (e.IsSuccess)
    {
        webView21.CoreWebView2.NewWindowRequested += CoreWebView2_NewWindowRequested;
    }
}

private void CoreWebView2_NewWindowRequested(object sender, CoreWebView2NewWindowRequestedEventArgs e)
{
    // 标记事件已自定义处理,阻断WebView2默认新窗口逻辑
    e.Handled = true;
    string targetUrl = e.Uri;
    
    // 调用系统默认关联浏览器打开(若系统默认浏览器为Edge则直接符合需求)
    Process.Start(new ProcessStartInfo(targetUrl)
    {
        UseShellExecute = true
    });

    // 如果需要强制指定Edge打开、忽略系统默认浏览器设置,替换上面的Process.Start逻辑为以下代码即可
    // string edgePath = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";
    // Process.Start(edgePath, targetUrl);
}
注意事项
  • UseShellExecute = true是调用系统默认浏览器的必要配置,部分.NET版本下该属性默认值为false,必须手动显式设置
  • 如果是WPF/WinForm跨线程场景,需要把进程启动逻辑调度到UI线程执行,避免抛出线程权限异常
  • 不要同时给e.NewWindow赋值和执行外部浏览器启动逻辑,二者逻辑冲突会导致行为不符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:33:07