CefSharp LoadHtml

G-M*_*Man 16 c# chromium-embedded cefsharp

有人可以向我解释一下CefSharp LoadHtml功能是如何工作的吗?

LoadHtml(string html, string url)
Run Code Online (Sandbox Code Playgroud)

什么的htmlurl参数代表什么?

我有兴趣将原始HTML字符串中的页面加载到CefSharp浏览器中.

Yos*_*shi 33

LoadHtml(string html)是你的HTML字符串,例如LoadHtml(string html, string url).实际上,只要Chromium能够理解,您甚至可以在字符串中添加其他内容,例如SVG标记.

LoadHtml(string html, string url)是必需的,因为您的HTML代码可能包含尝试执行AJAX调用的JavaScript,并且Web浏览器需要了解适用的安全限制.该方案(例如"http:","about:")和域(例如"localhost","google.com")影响行为,例如点击链接,AJAX请求,iframe等.

如果您只想简单地呈现静态HTML,请使html某些内容成为唯一的(例如,"<html><body>Hello world</body></html>"以便资源处理程序不会与urlWeb上的实际重叠).如果您需要加载HTML然后与其进行交互或执行AJAX调用,请选择url与您要与之交互的域匹配的内容 - 例如,如果您要创建另一个Google主页并执行AJAX搜索查询,您将想要http://rendering/用作您的URL,以便与之通信.


你可以在这里看到源代码url.

CefSharp的作用是:

  1. 注册给定的资源处理程序url.
  2. 打电话https://www.google.com/告诉Chromium加载给定的LoadHtml.

然后,在引擎盖下:

  1. Chromium请求url.
  2. 资源处理程序拦截请求,并返回您的Load(url).
  3. Chromium呈现您url而不是URL的真实内容.

  • 当我尝试这个时,我需要在网址中尾随/.所以`http:// rendering /`有效. (10认同)

小智 6

请尝试以下代码

Cef.Initialize(new CefSettings());

ChromiumWebBrowser browser = new ChromiumWebBrowser(string.Empty) {
    Location = new Point(0, 0),
    Dock = DockStyle.Fill
};

//add to a System.Windows.Forms.Form or some other container.
this.Controls.Add(browser);
//the url parameter does not have to be an existing address.
browser.LoadHtml("<html><head></head><body><h1>Hello, World!</h1></body></html>", "http://www.example.com/");
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 它应该是`CefSharp.WebBrowserExtensions.LoadHtml(浏览器,"<html> <head> </ head> <body> <h1> Hello,World!</ h1> </ body> </ html>","http: //www.example.com中/");` (2认同)