WinForms WebBrowser控件:强制所有链接在新(IE)窗口中外部打开
在Windows Forms应用程序中,WebBrowser控件用于承载和显示网页。默认情况下,WebBrowser控件使用Internet Explorer渲染引擎。但是,在某些情况下,可能需要在新的(IE)窗口中打开所有链接。以下是如何实现此功能的方法:
在WebBrowser控件的Navigating事件中,可以检查导航到的URL,并根据需要取消导航。然后,可以使用Process.Start方法打开新的(IE)窗口。
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
if (e.Url.ToString().StartsWith("http"))
{
e.Cancel = true;
Process.Start("iexplore.exe", e.Url.ToString());
}
}
在WebBrowser控件的DocumentCompleted事件中,可以遍历HTML文档中的所有链接,并将它们的目标属性更改为“_blank”。这将导致在新的(IE)窗口中打开链接。
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
foreach (HtmlElement link in webBrowser1.Document.Links)
{
if (link.GetAttribute("href").StartsWith("http"))
{
link.SetAttribute("target", "_blank");
}
}
}
这两种方法都可以实现在新的(IE)窗口中打开所有链接。您可以根据自己的需求选择其中一种方法。
领取专属 10元无门槛券
手把手带您无忧上云