有人可以解释一下CefSharp的LoadHtml
函数是如何工作的吗?
LoadHtml(string html, string url)
html
和 url
参数代表什么?
我想将一个原始的 HTML 字符串加载到 CefSharp 浏览器中,非常感兴趣。
有人可以解释一下CefSharp的LoadHtml
函数是如何工作的吗?
LoadHtml(string html, string url)
html
和 url
参数代表什么?
我想将一个原始的 HTML 字符串加载到 CefSharp 浏览器中,非常感兴趣。
LoadHtml(string html)
方法,以base64编码的数据URI方式加载HTML。它比下面描述的LoadHtml(string html, string url)
方法更可靠。LoadHtml(string html, string url)
中:
html
是您的HTML字符串,例如"<html><body>Hello world</body></html>"
。实际上,您甚至可以把其他内容放在字符串中,如SVG标记,只要Chromium能够理解。
url
是必需的,因为您的HTML代码可能包含尝试执行AJAX调用的JavaScript,而Web浏览器需要了解适用的安全限制。方案(例如“http:”,“about:”)和域(例如“localhost”,“google.com”)会影响诸如单击链接、AJAX请求、iframe等行为。url
设置为唯一的,例如http://rendering/
(这样资源处理程序就不会与网络上的真实url
重叠)。 如果你需要加载HTML并与之交互或执行AJAX调用,则选择与你想要交互的域名匹配的url
- 例如,如果你想创建一个替代的Google主页并执行AJAX搜索查询,则需要使用https://www.google.com/
作为你的URL,以便你可以与之通信。
您可以在此处查看LoadHtml
的源代码source code for LoadHtml
here。
CefSharp的作用是:
url
注册资源处理程序。Load(url)
告诉Chromium加载给定的url
。然后,在幕后:
url
。html
。html
,而不是URL的真实内容。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/");
LoadHtml
方法了,请问是否有其他可替代的方法? - Nguyen Minh BinhCefSharp.WebBrowserExtensions.LoadHtml(browser, "<html><head></head><body><h1>Hello, World!</h1></body></html>", "http://www.example.com/");
它的作用是将一段HTML代码加载到指定的浏览器控件中,并指定其URL为"http://www.example.com/"。请注意,此处的代码需要使用CefSharp库。 - Gianni Ciccarelli对于一个WPF项目,请尝试以下步骤。
在xaml中创建到CefSharp.Wpf的命名空间引用。
xmlns:cef="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
将ChromiumWebBrowser元素添加到您的窗口中。
<cef:ChromiumWebBrowser x:Name="browser" IsBrowserInitializedChanged="browser_IsBrowserInitializedChanged"></cef:ChromiumWebBrowser>
<Window x:Class="CEF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CEF"
xmlns:cef="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<cef:ChromiumWebBrowser x:Name="browser" IsBrowserInitializedChanged="browser_IsBrowserInitializedChanged"></cef:ChromiumWebBrowser>
</Grid>
</Window>
using System.Windows;
namespace CEF
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void browser_IsBrowserInitializedChanged(object sender, DependencyPropertyChangedEventArgs e)
{
// the browser control is initialized, now load the html
browser.LoadHtml("<html><head></head><body><h1>Hello, World!</h1></body></html>", "http://www.example.com/");
}
}
}