c# - 使用 WebBrowser 控件时如何获得网站图标?

标签 c# .net winforms webbrowser-control favicon

我的应用程序中嵌入了一个 Windows 窗体 WebBrowser 控件。有什么方法可以使用 WebBrowser 或 HtmlDocument API 获取网页图标?即使从本地文件系统获取它也足够了。将图标下载为单独的操作将是最后的手段......

谢谢。

最佳答案

只需使用 GET 或类似方式下载/favicon.ico 文件(就像下载任何其他文件一样)。
您还可以解析页面以找到 可能 也是 png 的图标。默认情况下,它是一个 ICO 文件。

favicon文件的位置通常在<link rel="shortcut icon" href="/favicon.ico" /><head>页面的节点。

此外,一些浏览器默认尝试下载/favicon.ico(即网站根文件夹中的 favicon.ico 文件)检查该元素的页面。

其他想法是使用 Google 的 S2:

http://www.google.com/s2/favicons?domain=youtube.com (Try it)
这将为您提供 16x16 PNG 图片 youtube 的 ICO 图标。

http://www.google.com/s2/favicons?domain=stackoverflow.com (Try it)
这将为您提供相同格式的 stackoverflow 图标。

它可能看起来很棒,但请不要忘记,此 Google 服务不受官方支持,他们可能会随时将其删除。

关于c# - 使用 WebBrowser 控件时如何获得网站图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593377/

相关文章:

c# - 如何在 Visual Studio 中使用 LINQPad Dump() 扩展方法?

c# - 来自 odbc 阅读器 C# 的字符编码

c# - 在 WPF 中共享 ObjectDataProvider

c# - 从相对路径获取绝对URL(重构方法)

c# - 当 Visual Studio 只允许它是 "Application"设置时,我如何允许用户更改 SQL 连接字符串?

c# - Azure Function - 在 Visual Studio 2017 中为不同环境添加不同的设置文件

.net - 如果仅存在 .NET 2.0 RTM,运行时如何解析对 .NET 2.0 SP1 程序集的调用

c# - 与定时器查询相比,SqlDependency(Service Broker)的效率如何?

c# - .NET WinForm ComboBox - 如何改变 DropDown 行为

.net - WinForms ListView 控件上的多行列表项?