我想在Windows应用程序上创建一个webview。
问题是我不知道如何在IE打开窗口时捕获事件。当链接有target =“_ blank”时,windows会自动打开IE。我试着用C#和JS制作应用程序,但问题是一样的。
在JS部分,我尝试使用'newwindow'添加一个事件,但它不起作用
对于C#部分,我在XAML上使用了webview,而在HTML中使用了x-ms-window
某些链接的问题是它们的标记中有target =“_ blank”。
他们是解决这个问题的方法吗?他们是一种捕捉这些事件的方法吗?
答案 0 :(得分:2)
最简单的解决方案是(使用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加载
答案 1 :(得分:0)
在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;
}