【发布时间】:2013-07-13 21:53:00
【问题描述】:
我正在使用 .Net 4.0 WebBrowser(来自 System.Windows.Controls)。在我的应用程序中,用户可以修改 html 数据并且网络浏览器显示更新。然后应用程序应自动滚动到显示的上一个元素。
我在 Windows 7 上使用 WPF / c# 4.0。
详细说明:
- 在代码中我调用了 WebBrowser.NavigateToString(htmlData1);
- 用户滚动到任意位置
- 用户(以某种方式)更改了 html 文档
- 现在我想找到(并记住)显示的第一个 html 元素
- 我调用 WebBrowser.NavigateToString(htmlData2);
- 现在我想使用记忆元素来自动滚动html文档(我知道有IHTMLElement.scrollIntoView()可以做到这一点)
所以问题是:如何在 WebBrowser 中获取第一个可见的 html 元素?
您可能会说更新后的 html 将不再具有记忆的元素。对。但我在文档中有时间戳,并将使用记忆的 html 元素在新的 html 文档中找到最佳位置。
【问题讨论】:
-
多个元素可以覆盖任意位置,如果它们没有边框、填充或间距,例如h3,p,跨度,a,img。您打算使用哪一个作为锚点?另外,如果元素没有 id,你如何识别它?查找动态页面的模式需要一些时间对服务器端代码进行逆向工程。
标签: html wpf dom webbrowser-control