使用LoadHTML时未加载CefSharp资源

时间:2013-04-10 08:23:00

标签: c# html chromium-embedded cefsharp

我正在使用CefSharpCefSharp browser中显示html文件。

当我使用web_view.Load(@"C:\htmlfile.htm");时,它会显示我的身体背景。

但是当我加载htmlfile.htm并使用web_view.LoadHtml(File.ReadAllText(@"C:\in.htm"));身体背景时没有显示?

我想问一下如何在html本地文件中设置地址正文背景?

这是我的Html文件内容:

<html>
<body background="C:\Untitled.png">
</body>
</html>

3 个答案:

答案 0 :(得分:6)

试试这个:

web_view.LoadHtml(File.ReadAllText(@"C:\in.htm"), @"C:\in.htm");

第二个参数表示URL,如果URL是本地资源,则该页面将能够加载本地资源。

答案 1 :(得分:0)

您必须实现IRequestHandler.OnBeforeResourceLoad(),拦截每个请求,并自己从磁盘读取字节并将其作为响应提供给chrome。

https://github.com/chillitom/CefSharp/blob/master/CefSharp/IRequestHandler.h#L26

答案 2 :(得分:0)

另一种方法是使用schemeHandler(它更干净的IMO)。

  • 使用CEF注册计划 -
  

CEF.RegisterScheme(&#34; ascheme&#34;,new HandlerFactory());

  • 添加一个方案处理程序,从磁盘加载PNG并返回相关响应

  • 然后更改您的html以引用该方案:

  

body background =&#34; myscheme://Untitled.png"

如果需要,我可以填补空白......但这应该足够了!