C# WebBrowser控件加载HTML时img标签失效显示叉号怎么解决?
解决方案
- HTML中img标签的本地磁盘路径未添加file协议前缀,无法被WebBrowser内核识别,需将src属性值修改为
file:///d:/report/1.bmp格式 - C#代码末尾的
Refresh()调用为冗余逻辑,会重新加载about:blank页面覆盖已写入的HTML内容,直接删除该行即可
修正后C#代码
webBrowser1.Navigate("about:blank"); // 等待导航完成避免Document对象为空 while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } webBrowser1.Document.OpenNew(false); webBrowser1.Document.Write(str_html);
修正后HTML示例
<html><head></head><body><img src="file:///d:/report/1.bmp" width=1000></body></html>
可选排查项
若修改后仍无法正常加载图片,可按以下顺序排查:
- 确认
d:/report/1.bmp路径真实存在,当前运行的程序有该路径的读取权限 - 添加IE内核本地资源访问权限配置,程序启动时执行一次即可:
using Microsoft.Win32; using System.Diagnostics; // 写入注册表配置放开本地文件加载限制 RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN", true); regKey.SetValue(Process.GetCurrentProcess().ProcessName + ".exe", 0, RegistryValueKind.DWord); regKey.Close();
内容的提问来源于stack exchange,提问作者minyoung
相关产品推荐
相关产品推荐

