C# - GeckoFX 与 InnerHTML

C# - GeckoFX vs InnerHTML

如果我使用默认的 Visualstudio webBrowser 控件 (IE),我会这样写:

textBox3.Text = webBrowser1.Document.GetElementById("mydivid").InnerHtml;

但我固执地使用 GeckoFX (Mozilla),当然它不起作用。我发现的是我需要处理 "HTMLDocument" 而不是 "Document" 的信息才能获得我想要的值。但是没有适合我需要的例子。 如何获取这个特定元素的 innerHTML?

--- 对@Timothy Groote 的回应---

我已经阅读了其他主题 - GetElementById 中没有代码示例,这就像是宽定义,但我需要特定的 - 我无法阅读此代码并获得明确的信息是什么方法或 属性 我应该在我的应用程序中使用。

我可以补充一点,我的元素是并且将永远是 HTML 元素,所以我不需要每次都用 "if".

验证

当我在我的应用程序中使用 "the other code" 时,结果(而不是内部 HTML)仅为:

<head></head><body></body>

在"the other code"也有一个错误:

var geckoDomElement = WebBrowser1.Document.DocumentElement;

没有 webBrowser1 控件! 只有 geckoWebBrowser1,两者都不起作用!

--- 编辑 2 ---

我也在想类似的事情:

textBox3.text = (GeckoHtmlElement)geckoWebBrowser1.Document.GetElementById("mydivid")....

但是也没有"innerHtml"

(GeckoHtmlElement)geckoWebBrowser1.Document.DocumentElement 

没有"getElementById"。

如果您使用 Geckofx 45,那么它非常简单,只需像这样尝试....

GeckoHtmlElement testelement = null; testelement = (GeckoHtmlElement)webBrowser1.Document.GetElementById("test"); string text=testelement .InnerHtml;

如果您不知道如何使用 Geckofx 45,请尝试这个简单的教程.. How to use or embed Geckofx 45 Webbrowser control into Visual Studio into WinForms Applications

回答 当然定义变量:

GeckoHtmlElement machcode;

查找元素:

machcode = geckoWebBrowser1.Document.GetHtmlElementById("machinecode");

最后阅读内容:

textBox3.Text = machcode.InnerHtml;

一件重要的事情是将代码放在 DocumentComplete 事件中!

Web 中提供的每个解决方案都是错误的 - 有些指向不存在的 webBrowser1 控件,有些忘记定义,有些抛出空异常,有些使用错误的 GetElement 而不是 GetHtmlElement。