Ресурсы CefSharp не загружаются при использовании LoadHTML

Я использую CefSharp для отображения HTML-файла в CefSharp browser.

когда я использую 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>

person KF2    schedule 10.04.2013    source источник


Ответы (3)


Попробуй это:

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

Второй параметр указывает URL-адрес, если URL-адрес является локальным ресурсом, то страница сможет загружать локальные ресурсы.

person Alejandro    schedule 07.02.2014

Вам нужно будет реализовать IRequestHandler.OnBeforeResourceLoad(), перехватывать каждый запрос и самостоятельно считывать байты с диска и передавать их в хром в качестве ответа.

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

person anthony    schedule 10.04.2013

Другой способ сделать это - использовать схемуHandler (это чище IMO).

  • Зарегистрировать схему в CEF -

CEF.RegisterScheme("ascheme", new HandlerFactory());

  • Добавьте обработчик схемы, который загружает PNG с диска и возвращает соответствующий ответ.

  • затем измените свой html, чтобы он ссылался на схему:

фон тела = "myscheme://Untitled.png"

Я могу заполнить пробелы, если нужно... но этого должно быть достаточно!

person penderi    schedule 22.01.2015