【问题标题】:How to get HtmlDocument from Awesomium.WebControl如何从 Awesomium.WebControl 获取 HtmlDocument
【发布时间】:2014-06-20 16:29:02
【问题描述】:

我在 .Net winforms 应用程序中完成所有这些工作。

我习惯使用只有文档属性的 IE WebControl。很简单。

现在我正在使用 Awesomium.WebControl,我正在尝试获取底层文档,以便我可以做一些 DOM 工作。

但我不知道该怎么做。 我也找不到任何关于如何在 Google 中做到这一点的文章。

有人可以发布一些以 WebControl 开头并以具有所有 DOM 方法的对象结尾的工作代码吗?我不在乎它是什么类,只要它能让我通过 dom 集合和东西。

我更喜欢在 .Net 中而不是在 javascript 中工作。 但作为最后的手段,我会选择有效的方法。

谢谢!

【问题讨论】:

    标签: .net winforms web-controls awesomium


    【解决方案1】:

    要访问 Awesomium WebControl 中的 HTML 文档,您可以执行 JavaScript getElementsByTagName。我们就是这样做的:

    Dim html As String = WebControl1.ExecuteJavascriptWithResult("document.getElementsByTagName('html')[0].innerHTML")
    

    例如,您可以将此代码放在WebControl.DocumentReady 事件的处理程序中。否则,您需要在执行 JavaScript 之前检查 WebControl1.IsDocumentReady = True

    然后我们使用 HTMLAgilityPack 将这个 HTML 字符串解析成一个 HTMLDocument:

    Dim doc As New HtmlDocument
    doc.LoadHtml(html)
    

    希望它能让你做所有你需要做的工作!

    【讨论】:

    • 谢谢。不知道ExecuteJavascriptWithResult返回的html是javascript后的dom操作还是网页原始未修改的代码?
    • 它将返回页面的当前状态。因此,如果您在 DocumentReady 事件触发后执行此操作,它将是 JavaScript 后的 dom 操作。
    • 这类工作,除了 DocumentReady 在所有异步回调完成之前被调用。有没有办法知道这些何时完成?
    猜你喜欢
    • 1970-01-01
    • 2015-11-08
    • 2021-08-22
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2012-05-15
    相关资源
    最近更新 更多