当 IE11 为 disabled/uninstalled 时,WebBrowser 控件无法在本机浏览器 window 中打开 URL
WebBrowser control not opens URLs in native browser window when IE11 is disabled/uninstalled
我正在使用在 .NET Framework 2.0 中开发的 Windows 表单应用程序。我无法升级框架,因为 2.0 是必需的。该应用程序用于在 .NET 4.5.2 中开发的 Web 应用程序的 WebBrowser 控件中托管 URL 并且工作正常。 Web 应用程序加载 HTML 内容,其中还包含 Hyperlink。现在我面临着 IE11 不可用或 disabled/uninstalled 的情况。当 windows 表单应用程序运行并通过网站加载 HTML 内容时,我尝试单击其中一个 hyperlink 而不是打开任何其他可用的 link浏览器 (Chrome, Edge) 它什么都不做。你能给我一个解决方法来处理这种情况吗?我希望 URL 应该在任何其他可用的浏览器 window.
中打开
谢谢。
点击link可以先获取url的link href,然后使用Process.Start()
启动Edge/Chrome导航到link.
示例代码如下所示,它启动 Edge (msedge.exe) 以打开 links:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var linkElements = webBrowser1.Document.GetElementsByTagName("a");
foreach (HtmlElement link in linkElements)
{
link.Click += (s, args) =>
{
int iStartPos = link.OuterHtml.IndexOf("window.open('") + ("window.open('").Length;
int iEndPos = link.OuterHtml.IndexOf("')", iStartPos);
String url = link.OuterHtml.Substring(iStartPos, iEndPos - iStartPos);
Process.Start("msedge.exe", url);
};
}
}
我正在使用在 .NET Framework 2.0 中开发的 Windows 表单应用程序。我无法升级框架,因为 2.0 是必需的。该应用程序用于在 .NET 4.5.2 中开发的 Web 应用程序的 WebBrowser 控件中托管 URL 并且工作正常。 Web 应用程序加载 HTML 内容,其中还包含 Hyperlink。现在我面临着 IE11 不可用或 disabled/uninstalled 的情况。当 windows 表单应用程序运行并通过网站加载 HTML 内容时,我尝试单击其中一个 hyperlink 而不是打开任何其他可用的 link浏览器 (Chrome, Edge) 它什么都不做。你能给我一个解决方法来处理这种情况吗?我希望 URL 应该在任何其他可用的浏览器 window.
中打开谢谢。
点击link可以先获取url的link href,然后使用Process.Start()
启动Edge/Chrome导航到link.
示例代码如下所示,它启动 Edge (msedge.exe) 以打开 links:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var linkElements = webBrowser1.Document.GetElementsByTagName("a");
foreach (HtmlElement link in linkElements)
{
link.Click += (s, args) =>
{
int iStartPos = link.OuterHtml.IndexOf("window.open('") + ("window.open('").Length;
int iEndPos = link.OuterHtml.IndexOf("')", iStartPos);
String url = link.OuterHtml.Substring(iStartPos, iEndPos - iStartPos);
Process.Start("msedge.exe", url);
};
}
}