如果导航会打开一个新窗口(如window.open()、target="_blank"),会触发本事件。
e参数属性:
| 属性名 | 类型 | 说明 |
|---|---|---|
| Uri | String | 即将导航到的目标 URL(核心属性) |
| Handled | Boolean | 设为True可阻止打开新窗口(最常用) |
| IsUserInitiated | Boolean | 是否由用户主动操作触发(如点击链接、输入地址) |
| NewWindow | CoreWebView2 | 用于指定重载目标网页的CoreWebView2 |
| Name | String | 窗口名(对应 window.open 的第二个参数) |
| WindowFeatures | CoreWebView2WindowFeatures | 新窗口的特性(如大小、位置、是否全屏,对应 window.open 的第三个参数) |
| OriginalSourceFrameInfo | CoreWebView2FrameInfo | 请求发起的框架(Frame)信息 |
| GetDeferral(方法) | CoreWebView2Deferral | 延迟事件处理(Foxtable用户用不着) |
示例
如果你希望禁止所有自动弹窗,但对于手动弹窗(用户点击链接),则直接将目标网页显示在当前WebViewer,而不是显示在新窗口中,可将NewWindowRequested事件代码设置为:
If
e.IsUserInitiated
Then
'如果是手动打开的(用户点击链接)
e.Handled =
True
'取消打开新窗口
e.Sender.WebViewer.CoreWebView2.Navigate(e.Uri)
'用当前的WebViewer显示目标网页
Else
'如果是自动弹窗
e.Handled =
True
'禁止自动弹窗
End
If
或:
If
e.IsUserInitiated
Then
'如果是手动打开的(用户点击链接)
e.Handled =
True
'取消打开新窗口
e.NewWindow = e.Sender.WebViewer.CoreWebView2
'用当前的WebViewer显示目标网页
Else
'如果是自动弹窗
e.Handled =
True
'禁止自动弹窗
End
If