WebViewControlNewWindowRequestedEventArgs.NewWindow 属性

定义

提供一个新的 WebViewControl 作为来自请求 WebViewControl内部的window.open脚本调用的目标。 目标 Web 视图中的内容始终被视为跨源到开放 Web 视图中的内容,反之亦然,并受跨域限制的约束。 WebViewControl属性中NewWindow提供的 必须是新的,在与打开器 Web 视图相同的进程中运行,并且无法导航。 NewWindow设置 属性优先于 Handled 属性。 如果 NewWindow 设置了 ,则使用提供的 WebViewControl 。 如果未 NewWindow 设置 ,则 Handled 检查 以确定新窗口请求的行为。

public:
 property IWebViewControl ^ NewWindow { IWebViewControl ^ get(); void set(IWebViewControl ^ value); };
IWebViewControl NewWindow();

void NewWindow(IWebViewControl value);
public IWebViewControl NewWindow { get; set; }
var iWebViewControl = webViewControlNewWindowRequestedEventArgs.newWindow;
webViewControlNewWindowRequestedEventArgs.newWindow = iWebViewControl;
Public Property NewWindow As IWebViewControl

属性值

Windows 要求

设备系列
Windows 10, version 1809 (在 10.0.17763.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v7.0 中引入)

示例

以下 C# 示例演示了允许 window.open 创建返回到 opener 的新 WebViewControl:

WebViewControlProcess wvProc;
WebViewControl webView;

void OnWebViewControlNewWindowRequested(WebViewControl sender, WebViewControlNewWindowRequestedEventArgs args)
{

    if (args.Uri.Domain == “mydomain.com”)
    {
        using deferral = args.GetDeferral();
        args.NewWindow = await wvProc.CreateWebViewControlAsync(
            parentWindow, targetWebViewBounds);
        deferral.Complete();
    }
    else
    {
        // Prevent WebView from launching in the default browser.
        args.Handled = true;
    }
}

String htmlContent = “<html><script>window.open(‘http://mydomain.com’)</script><body></body></html>”;

webView.NavigateToString(htmlContent);

适用于