4

我正在将一个旧项目迁移到 WebKit.NET 0.5 Cairo。我已经克服了大多数障碍,但我不知道如何获取单个WebKit.DOM.Element对象的 HTML。

我可以使用 WebKitBrowser.DocumentText 读取整个文档的 HTML,但这不是我需要的。

下面基本上是我想要完成的。我浏览了文档并进行了很多搜索,但在所有方面都一无所获。我发现没有办法完成代码段中的最后一行。

WebKit.DOM.Element newdiv = webKitBrowser1.Document.CreateElement("DIV");
...
[ Create some SPAN's and append them to newdiv ]
...
String divHTML = newdiv.DocumentText // <-- DocumentText is not a member of WebKit.DOM.Element

使用 IE 控件,我可以只执行divHTML = newdiv.InnerHTML,但找不到任何与 WebKit.NET 等效的控件。

作为替代方案,我会接受将 HTML 注入元素的解决方案,这样我就可以手动添加 IMG 标记,而无需专门为其创建 DOM 元素。使用 divHTML.TextContent,html 被解释为纯文本。

提前致谢!

4

1 回答 1

1

5 年后,既然我可以回答我自己的问题,我将正式回答这个问题,因为它已经坐了这么久,并且被标记为一个热门问题。

反复试验最终导致了一个不太理想但功能性的解决方案,其形式为

WebKit.DOM.Element newdiv = webKitBrowser1.Document.CreateElement("DIV");
...
[ Create some SPAN's and append them to newdiv ]
...
String divHTML = webKitBrowser1.StringByEvaluatingJavaScriptFromString("document.getElementById('DivElementID').innerHTML");

然后,同样的方法也可以用于设置元素的 innerHTML。

这也解决了 WebKitBrowser.DocumentText 未提及的问题,该问题仅反映原始 HTML,而不是任何修改后的结果。

于 2018-09-20T16:26:23.800 回答