C# - GeckoFX vs InnerHTML

时间:2016-10-05 09:05:41

标签: c# webbrowser-control geckofx

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

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

但我很顽固地使用GeckoFX(Mozilla)并且当然它不起作用。我找到的是我需要提供的信息" HTMLDocument"不是"文件"拉出我想要的价值。但没有适合我需求的例子。 如何获得这个特定元素的innerHTML?

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

我已经阅读了其他主题 - 没有GetElementById的代码示例,它就像广泛的定义,但我需要特定的一个 - 我无法阅读此代码并获得明确我在我的应用程序中使用的方法或属性。

我可以添加我的元素并且将始终是HTML元素,因此我不需要每次都使用" if"来验证。

当我使用"其他代码"在我的应用结果(而不是innerHTML)中只有:

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

在&#34;其他代码&#34;也有一个错误:

var geckoDomElement = WebBrowser1.Document.DocumentElement;

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

--- Edit2 ---

我也在考虑这样的事情:

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

但也没有&#34; innerHtml&#34;

(GeckoHtmlElement)geckoWebBrowser1.Document.DocumentElement 

没有&#34; getElementById&#34;。

2 个答案:

答案 0 :(得分:2)

如果您使用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

答案 1 :(得分:1)

ANSWER 当然定义变量:

GeckoHtmlElement machcode;

寻找元素:

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

最后阅读内容:

textBox3.Text = machcode.InnerHtml;

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

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