【问题标题】:How to prevent WebView2(Edge based) to open a new window如何防止 WebView2(基于边缘)打开一个新窗口
【发布时间】:2021-05-17 08:18:48
【问题描述】:

当我打开一个新选项卡时,在 Webview2 内部,WindowsForms 外部的一个新窗口打开。我想阻止这个窗口打开,我该怎么做?

【问题讨论】:

标签: c# winforms webview2


【解决方案1】:

您可以处理CoreWebView2.NewWindowRequested来决定新窗口

  • 要完全抑制弹出窗口,请设置e.Handled = true;
  • 要在同一窗口中显示弹出内容,请设置e.NewWindow = (CoreWebView2)sender;
  • 要在另一个特定实例中打开,请将 e.NewWindow 设置为另一个 CoreWebView2 实例。

例如:

//using Microsoft.Web.WebView2.Core;
//using Microsoft.Web.WebView2.WinForms;

WebView2 webView21 = new WebView2();
private async void Form1_Load(object sender, EventArgs e)
{
    webView21.Dock = DockStyle.Fill;
    this.Controls.Add(webView21);
    webView21.Source = new Uri("Https://stackoverflow.com");
    await webView21.EnsureCoreWebView2Async();
    webView21.CoreWebView2.NewWindowRequested += CoreWebView2_NewWindowRequested;
}

private void CoreWebView2_NewWindowRequested(object sender,
    CoreWebView2NewWindowRequestedEventArgs e)
{
    e.NewWindow = (CoreWebView2)sender;
    //e.Handled = true;
}

【讨论】:

    【解决方案2】:

    为了补充@Reza 的答案,我在 VB.Net 中遇到了这个确切的问题,但所有答案都是针对 C# 的,所以如果其他人需要,我会在这里发布。

    首先确保导入这个:

    Imports Microsoft.Web.WebView2.Core
    Imports Microsoft.Web.WebView2.WinForms
    

    然后添加这 2 个事件,只需将 wVBrowser 替换为您的 Webview2 控件名称即可。

    Private Sub wVBrowser_CoreWebView2InitializationCompleted(sender As Object, e As CoreWebView2InitializationCompletedEventArgs) Handles wVBrowser.CoreWebView2InitializationCompleted
                AddHandler wVBrowser.CoreWebView2.NewWindowRequested, AddressOf CoreWebView2_NewWindowRequested
            End Sub
    Private Sub CoreWebView2_NewWindowRequested(ByVal sender As Object, ByVal e As Microsoft.Web.WebView2.Core.CoreWebView2NewWindowRequestedEventArgs)
                e.Handled = True
            End Sub
    

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      相关资源
      最近更新 更多