Windows 8应用程序WebView捕获事件目标=“_空白”;
本文关键字:空白 目标 事件 应用程序 WebView Windows | 更新日期: 2023-09-27 17:57:44
我想在windows应用程序上创建一个web视图
问题是,当一个窗口将用IE打开时,我不知道如何捕捉事件。当链接的target="_blank"时,窗口会自动打开IE。我试图用C#和JS制作应用程序,但问题是一样的
在JS部分,我尝试添加一个带有"newwindow"的事件,但它不起作用
对于C#部分,我在XAML上使用了webview,对于HTML,我使用了x-ms-window
某些链接的问题在于,它们的标签中包含target="_blank"
他们能解决这个问题吗?他们有办法赶上那些活动吗?
最简单的解决方案是(使用jQuery):
$('a[target=_blank]').on('click',function(e){
e.stopPropagation();
e.preventDefault();
window.external.notify($(this).prop('href'));
});
在Windows 8中,您必须将页面(主机)添加到AllowedScriptNotifyUris
在Windows 8.1中,您可能需要一些其他解决方法来使用window.external.notify
,因为允许的主机嵌入在应用程序清单中,并且必须通过https 加载
Startign在Windows 10上,您可以使用WebView.NewWindowRequested
事件:
private void WebView1_NewWindowRequested(
WebView sender,
WebViewNewWindowRequestedEventArgs args)
{
// Prevent the browser from being launched.
args.Handled = true;
// Open the Uri in the current window.
sender.Source = args.Uri;
}