使用CoreWebView2NewWindowRequestedEventArgs在子窗口中打开URL

米什拉(Mishra Saurabh)

在WPF WebView2控件中,我想window.open("https://www.google.com")从主窗口执行,以使用来在子窗口中打开URL CoreWebView2_NewWindowRequested但是URL网页没有显示在子窗口实例中。

我不太确定下面的代码有什么问题:

MainWindow.xaml.cs

  private async void btnOpenPopup_Click(object sender, RoutedEventArgs e)
  {
     await MainWebView2Instance.ExecuteScriptAsync("openPopup()");
  }

  private async void CoreWebView2_NewWindowRequested(object sender, CoreWebView2NewWindowRequestedEventArgs e)
  {
    Microsoft.Web.WebView2.Core.CoreWebView2Deferral deferral = e.GetDeferral();
    MainWindow childWindow = new MainWindow();
    childWindow.Title = "Child Window";

    //Creating a new webview2 instance for the child window
    WebView2 childWebView2Instance = new WebView2();
    await childWebView2Instance.EnsureCoreWebView2Async(null);

    childWebView2Instance.Source = new Uri(e.Uri);

    childWindow.dockPanel.Children.Add(childWebView2Instance);

    e.Handled = true;
    deferral.Complete();
    childWindow.Show();
  }

HTML页面中的JavaScript

<script type="text/javascript">
   function openPopup() {
            window.open("https://www.google.com ");
        }
</script>
用户名

注释掉(或删除)以下行:

await childWebView2Instance.EnsureCoreWebView2Async(null);

-阻塞了。您没有使用CoreWebView2Environment,因此不需要使用。将的Source属性设置childWebView2Instance为时,它将隐式初始化CoreWebView2。

更新:

当单击网页上的链接时,以下代码将打开一个子窗口,其中网页的HTML如下:

index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>
</head>

<script>
  function popuponclick()
  {
     my_window = window.open("https://www.google.com");
  }

</script>

<body>

  <div>
    <a href="javascript: popuponclick()">Open Popup Window</A>
  </div>

</body>
</html>

MainWindow.xaml

         ...

<wv2:WebView2 
Name="webView21"
CoreWebView2InitializationCompleted="webView21_CoreWebView2InitializationCompleted" 
Source="http://127.0.0.1:80/index.html"/>

         ...

webView21_CoreWebView2InitializationCompleted(MainWindow.xaml.cs)

private void webView21_CoreWebView2InitializationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
{
    System.Diagnostics.Debug.WriteLine(this.Title + " - webView21_CoreWebView2InitializationCompleted");
    webView21.CoreWebView2.NewWindowRequested += CoreWebView2_NewWindowRequested;
}

将using语句添加到MainWindow.xaml.cs中

using Microsoft.Web.WebView2.Core;
using Microsoft.Web.WebView2.Wpf;

在中MainWindow.xaml.cs,添加另一个构造函数,该构造函数可用于设置WebView2控件的Source属性。它应如下所示:

构造函数:(MainWindow.xaml.cs)

         ...

public MainWindow()
{
    InitializeComponent();
}

public MainWindow(string url)
{
    InitializeComponent();

    webView21.Source = new Uri(url);
}

         ...

CoreWebView2_NewWindowRequested(MainWindow.xaml.cs)

private void CoreWebView2_NewWindowRequested(object sender, Microsoft.Web.WebView2.Core.CoreWebView2NewWindowRequestedEventArgs e)
{
    CoreWebView2 cwv2 = (CoreWebView2)sender;

    Microsoft.Web.WebView2.Core.CoreWebView2Deferral deferral = e.GetDeferral();

    MainWindow childWindow = null;
    childWindow = new MainWindow(e.Uri);
    childWindow.Title = "Child Window";
    childWindow.Show();

    e.Handled = true;
    deferral.Complete();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用PrimeFaces按钮在新窗口中打开任意URL

来自分类Dev

如何使用js在隐身窗口中打开URL?

来自分类Dev

使用jQuery在没有URL的窗口中打开PDF

来自分类Dev

如何在新窗口中打开URL?

来自分类Dev

如何在新窗口中打开URL?

来自分类Dev

在主窗口中打开QGraphicScene子窗口小部件

来自分类Dev

在主窗口中打开QGraphicScene子窗口小部件

来自分类Dev

如何获得父窗口中打开的子窗口的引用?

来自分类Dev

在同一Firefox窗口中使用Python Selenium打开URL

来自分类Dev

如何使用AutoHotkey在新的浏览器窗口中打开URL?

来自分类Dev

如何在使用window.open打开的弹出窗口中隐藏url

来自分类Dev

如何使用return在新窗口中打开URL的JQuery Datatable Render列

来自分类Dev

Microsoft Edge的“打印”对话框在子窗口中打开

来自分类Dev

如何在SSRS报表的新窗口中打开URL?

来自分类Dev

点击按钮在当前窗口中打开URL

来自分类Dev

传递参数时,在SSRS中的新窗口中打开URL

来自分类Dev

Applescript不会使Safari在新窗口中打开URL

来自分类Dev

在Flex中无法在新窗口中打开URL

来自分类Dev

HTML如何在新窗口中打开此URL?

来自分类Dev

在HTML和Javascript的新窗口中打开URL

来自分类Dev

SideNav在同一窗口中打开页面(Yii2)

来自分类Dev

Symfony 2导航 菜单,在新窗口中打开

来自分类Dev

使用终端在帮助窗口中打开手册页

来自分类Dev

使用Addon-SDK在新标签/窗口中打开XUL

来自分类Dev

如何使用html在新窗口中打开链接?

来自分类Dev

如何使用Javascript或HTML在新窗口中打开链接

来自分类Dev

使用servlet在新窗口中打开pdf文件

来自分类Dev

使用angularjs在浏览器的新窗口中打开PDF

来自分类Dev

如何使用PhoneGap for iOS在弹出窗口中打开PDF文件

Related 相关文章

  1. 1

    如何使用PrimeFaces按钮在新窗口中打开任意URL

  2. 2

    如何使用js在隐身窗口中打开URL?

  3. 3

    使用jQuery在没有URL的窗口中打开PDF

  4. 4

    如何在新窗口中打开URL?

  5. 5

    如何在新窗口中打开URL?

  6. 6

    在主窗口中打开QGraphicScene子窗口小部件

  7. 7

    在主窗口中打开QGraphicScene子窗口小部件

  8. 8

    如何获得父窗口中打开的子窗口的引用?

  9. 9

    在同一Firefox窗口中使用Python Selenium打开URL

  10. 10

    如何使用AutoHotkey在新的浏览器窗口中打开URL?

  11. 11

    如何在使用window.open打开的弹出窗口中隐藏url

  12. 12

    如何使用return在新窗口中打开URL的JQuery Datatable Render列

  13. 13

    Microsoft Edge的“打印”对话框在子窗口中打开

  14. 14

    如何在SSRS报表的新窗口中打开URL?

  15. 15

    点击按钮在当前窗口中打开URL

  16. 16

    传递参数时,在SSRS中的新窗口中打开URL

  17. 17

    Applescript不会使Safari在新窗口中打开URL

  18. 18

    在Flex中无法在新窗口中打开URL

  19. 19

    HTML如何在新窗口中打开此URL?

  20. 20

    在HTML和Javascript的新窗口中打开URL

  21. 21

    SideNav在同一窗口中打开页面(Yii2)

  22. 22

    Symfony 2导航 菜单,在新窗口中打开

  23. 23

    使用终端在帮助窗口中打开手册页

  24. 24

    使用Addon-SDK在新标签/窗口中打开XUL

  25. 25

    如何使用html在新窗口中打开链接?

  26. 26

    如何使用Javascript或HTML在新窗口中打开链接

  27. 27

    使用servlet在新窗口中打开pdf文件

  28. 28

    使用angularjs在浏览器的新窗口中打开PDF

  29. 29

    如何使用PhoneGap for iOS在弹出窗口中打开PDF文件

热门标签

归档