【问题标题】:Rendering html in Gecko browser在 Gecko 浏览器中渲染 html
【发布时间】:2015-02-26 13:46:12
【问题描述】:

我在表单中有 Gecko 浏览器,需要指定要呈现的 HTML,而不是要导航到的 Url。我该怎么做?

public Form1()
{
        var xulPath = @"C:\Users\Jeff\Downloads\XulRunner";

        Skybound.Gecko.Xpcom.Initialize(xulPath);
        InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
        var body = @"<!DOCTYPE html>
              <html><body>Hello World!</body></html>";
        geckoWebBrowser1. ___________????______ = body;

【问题讨论】:

    标签: c# winforms browser gecko


    【解决方案1】:

    我假设你使用的是GeckoFX-29.0项目,官方加载html到浏览器的方法好像是LoadHtml(string htmlDocument)。

    例如:
    geckoWebBrowser1.LoadHtml("&lt;html&gt;&lt;body&gt;&lt;h1&gt;Hello!!!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;");

    参考https://bitbucket.org/geckofx/geckofx-29.0/src/eead77c1a7e2e8a483e5ca97fdcaa5291af8ad21/Geckofx-Winforms/GeckoWebBrowser.cs?at=default

    【讨论】:

    • LoadHtml(string content, string url) 重载实际上比 LoadHtml(string content)(应该被弃用)更好,因为它加载页面的方式更好。
    • 我猜你会将string url 保留为null?提供contenturl 参数的目的是什么?提供两种不同的方法不是更容易吗?
    • 该网址实际上并未加载。而是firefox认为加载的url。