我正在使用CefSharp在CefSharp 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>
答案 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.RegisterScheme(&#34; ascheme&#34;,new HandlerFactory());
添加一个方案处理程序,从磁盘加载PNG并返回相关响应
然后更改您的html以引用该方案:
body background =&#34; myscheme://Untitled.png"
如果需要,我可以填补空白......但这应该足够了!